changeset 183:3de719fb264a

elpy: version 1.26
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 21 Nov 2018 14:39:16 -0500
parents c3bd84985977
children b632448f215b
files elpa/elpy-1.25.0/elpy-autoloads.el elpa/elpy-1.25.0/elpy-django.el elpa/elpy-1.25.0/elpy-pkg.el elpa/elpy-1.25.0/elpy-profile.el elpa/elpy-1.25.0/elpy-refactor.el elpa/elpy-1.25.0/elpy-shell.el elpa/elpy-1.25.0/elpy.el elpa/elpy-1.25.0/elpy/__init__.py elpa/elpy-1.25.0/elpy/__main__.py elpa/elpy-1.25.0/elpy/auto_pep8.py elpa/elpy-1.25.0/elpy/blackutil.py elpa/elpy-1.25.0/elpy/compat.py elpa/elpy-1.25.0/elpy/jedibackend.py elpa/elpy-1.25.0/elpy/pydocutils.py elpa/elpy-1.25.0/elpy/refactor.py elpa/elpy-1.25.0/elpy/rpc.py elpa/elpy-1.25.0/elpy/server.py elpa/elpy-1.25.0/elpy/tests/__init__.py elpa/elpy-1.25.0/elpy/tests/compat.py elpa/elpy-1.25.0/elpy/tests/support.py elpa/elpy-1.25.0/elpy/tests/test_auto_pep8.py elpa/elpy-1.25.0/elpy/tests/test_black.py elpa/elpy-1.25.0/elpy/tests/test_jedibackend.py elpa/elpy-1.25.0/elpy/tests/test_pydocutils.py elpa/elpy-1.25.0/elpy/tests/test_refactor.py elpa/elpy-1.25.0/elpy/tests/test_rpc.py elpa/elpy-1.25.0/elpy/tests/test_server.py elpa/elpy-1.25.0/elpy/tests/test_support.py elpa/elpy-1.25.0/elpy/tests/test_yapf.py elpa/elpy-1.25.0/elpy/yapfutil.py elpa/elpy-1.25.0/snippets/python-mode/.yas-setup.el elpa/elpy-1.25.0/snippets/python-mode/__abs__ elpa/elpy-1.25.0/snippets/python-mode/__add__ elpa/elpy-1.25.0/snippets/python-mode/__and__ elpa/elpy-1.25.0/snippets/python-mode/__bool__ elpa/elpy-1.25.0/snippets/python-mode/__call__ elpa/elpy-1.25.0/snippets/python-mode/__cmp__ elpa/elpy-1.25.0/snippets/python-mode/__coerce__ elpa/elpy-1.25.0/snippets/python-mode/__complex__ elpa/elpy-1.25.0/snippets/python-mode/__contains__ elpa/elpy-1.25.0/snippets/python-mode/__del__ elpa/elpy-1.25.0/snippets/python-mode/__delattr__ elpa/elpy-1.25.0/snippets/python-mode/__delete__ elpa/elpy-1.25.0/snippets/python-mode/__delitem__ elpa/elpy-1.25.0/snippets/python-mode/__div__ elpa/elpy-1.25.0/snippets/python-mode/__divmod__ elpa/elpy-1.25.0/snippets/python-mode/__enter__ elpa/elpy-1.25.0/snippets/python-mode/__eq__ elpa/elpy-1.25.0/snippets/python-mode/__exit__ elpa/elpy-1.25.0/snippets/python-mode/__float__ elpa/elpy-1.25.0/snippets/python-mode/__floordiv__ elpa/elpy-1.25.0/snippets/python-mode/__ge__ elpa/elpy-1.25.0/snippets/python-mode/__get__ elpa/elpy-1.25.0/snippets/python-mode/__getattr__ elpa/elpy-1.25.0/snippets/python-mode/__getattribute__ elpa/elpy-1.25.0/snippets/python-mode/__getitem__ elpa/elpy-1.25.0/snippets/python-mode/__gt__ elpa/elpy-1.25.0/snippets/python-mode/__hash__ elpa/elpy-1.25.0/snippets/python-mode/__hex__ elpa/elpy-1.25.0/snippets/python-mode/__iadd__ elpa/elpy-1.25.0/snippets/python-mode/__iand__ elpa/elpy-1.25.0/snippets/python-mode/__idiv__ elpa/elpy-1.25.0/snippets/python-mode/__ifloordiv__ elpa/elpy-1.25.0/snippets/python-mode/__ilshift__ elpa/elpy-1.25.0/snippets/python-mode/__imod__ elpa/elpy-1.25.0/snippets/python-mode/__imul__ elpa/elpy-1.25.0/snippets/python-mode/__index__ elpa/elpy-1.25.0/snippets/python-mode/__init__ elpa/elpy-1.25.0/snippets/python-mode/__instancecheck__ elpa/elpy-1.25.0/snippets/python-mode/__int__ elpa/elpy-1.25.0/snippets/python-mode/__invert__ elpa/elpy-1.25.0/snippets/python-mode/__ior__ elpa/elpy-1.25.0/snippets/python-mode/__ipow__ elpa/elpy-1.25.0/snippets/python-mode/__irshift__ elpa/elpy-1.25.0/snippets/python-mode/__isub__ elpa/elpy-1.25.0/snippets/python-mode/__iter__ elpa/elpy-1.25.0/snippets/python-mode/__itruediv__ elpa/elpy-1.25.0/snippets/python-mode/__ixor__ elpa/elpy-1.25.0/snippets/python-mode/__le__ elpa/elpy-1.25.0/snippets/python-mode/__len__ elpa/elpy-1.25.0/snippets/python-mode/__long__ elpa/elpy-1.25.0/snippets/python-mode/__lshift__ elpa/elpy-1.25.0/snippets/python-mode/__lt__ elpa/elpy-1.25.0/snippets/python-mode/__mod__ elpa/elpy-1.25.0/snippets/python-mode/__mul__ elpa/elpy-1.25.0/snippets/python-mode/__ne__ elpa/elpy-1.25.0/snippets/python-mode/__neg__ elpa/elpy-1.25.0/snippets/python-mode/__new__ elpa/elpy-1.25.0/snippets/python-mode/__nonzero__ elpa/elpy-1.25.0/snippets/python-mode/__oct__ elpa/elpy-1.25.0/snippets/python-mode/__or__ elpa/elpy-1.25.0/snippets/python-mode/__pos__ elpa/elpy-1.25.0/snippets/python-mode/__pow__ elpa/elpy-1.25.0/snippets/python-mode/__radd__ elpa/elpy-1.25.0/snippets/python-mode/__rand__ elpa/elpy-1.25.0/snippets/python-mode/__rdivmod__ elpa/elpy-1.25.0/snippets/python-mode/__repr__ elpa/elpy-1.25.0/snippets/python-mode/__reversed__ elpa/elpy-1.25.0/snippets/python-mode/__rfloordiv__ elpa/elpy-1.25.0/snippets/python-mode/__rlshift__ elpa/elpy-1.25.0/snippets/python-mode/__rmod__ elpa/elpy-1.25.0/snippets/python-mode/__rmul__ elpa/elpy-1.25.0/snippets/python-mode/__ror__ elpa/elpy-1.25.0/snippets/python-mode/__rpow__ elpa/elpy-1.25.0/snippets/python-mode/__rrshift__ elpa/elpy-1.25.0/snippets/python-mode/__rshift__ elpa/elpy-1.25.0/snippets/python-mode/__rsub__ elpa/elpy-1.25.0/snippets/python-mode/__rtruediv__ elpa/elpy-1.25.0/snippets/python-mode/__rxor__ elpa/elpy-1.25.0/snippets/python-mode/__set__ elpa/elpy-1.25.0/snippets/python-mode/__setattr__ elpa/elpy-1.25.0/snippets/python-mode/__setitem__ elpa/elpy-1.25.0/snippets/python-mode/__slots__ elpa/elpy-1.25.0/snippets/python-mode/__str__ elpa/elpy-1.25.0/snippets/python-mode/__sub__ elpa/elpy-1.25.0/snippets/python-mode/__subclasscheck__ elpa/elpy-1.25.0/snippets/python-mode/__truediv__ elpa/elpy-1.25.0/snippets/python-mode/__unicode__ elpa/elpy-1.25.0/snippets/python-mode/__xor__ elpa/elpy-1.25.0/snippets/python-mode/ase elpa/elpy-1.25.0/snippets/python-mode/asne elpa/elpy-1.25.0/snippets/python-mode/asr elpa/elpy-1.25.0/snippets/python-mode/class elpa/elpy-1.25.0/snippets/python-mode/defs elpa/elpy-1.25.0/snippets/python-mode/enc elpa/elpy-1.25.0/snippets/python-mode/env elpa/elpy-1.25.0/snippets/python-mode/from elpa/elpy-1.25.0/snippets/python-mode/pdb elpa/elpy-1.25.0/snippets/python-mode/py3 elpa/elpy-1.25.0/snippets/python-mode/super elpa/elpy-1.26.0/elpy-autoloads.el elpa/elpy-1.26.0/elpy-django.el elpa/elpy-1.26.0/elpy-pkg.el elpa/elpy-1.26.0/elpy-profile.el elpa/elpy-1.26.0/elpy-refactor.el elpa/elpy-1.26.0/elpy-shell.el elpa/elpy-1.26.0/elpy.el elpa/elpy-1.26.0/elpy/__init__.py elpa/elpy-1.26.0/elpy/__main__.py elpa/elpy-1.26.0/elpy/auto_pep8.py elpa/elpy-1.26.0/elpy/blackutil.py elpa/elpy-1.26.0/elpy/compat.py elpa/elpy-1.26.0/elpy/jedibackend.py elpa/elpy-1.26.0/elpy/pydocutils.py elpa/elpy-1.26.0/elpy/refactor.py elpa/elpy-1.26.0/elpy/rpc.py elpa/elpy-1.26.0/elpy/server.py elpa/elpy-1.26.0/elpy/tests/__init__.py elpa/elpy-1.26.0/elpy/tests/compat.py elpa/elpy-1.26.0/elpy/tests/support.py elpa/elpy-1.26.0/elpy/tests/test_auto_pep8.py elpa/elpy-1.26.0/elpy/tests/test_black.py elpa/elpy-1.26.0/elpy/tests/test_jedibackend.py elpa/elpy-1.26.0/elpy/tests/test_pydocutils.py elpa/elpy-1.26.0/elpy/tests/test_refactor.py elpa/elpy-1.26.0/elpy/tests/test_rpc.py elpa/elpy-1.26.0/elpy/tests/test_server.py elpa/elpy-1.26.0/elpy/tests/test_support.py elpa/elpy-1.26.0/elpy/tests/test_yapf.py elpa/elpy-1.26.0/elpy/yapfutil.py elpa/elpy-1.26.0/snippets/python-mode/.yas-setup.el elpa/elpy-1.26.0/snippets/python-mode/__abs__ elpa/elpy-1.26.0/snippets/python-mode/__add__ elpa/elpy-1.26.0/snippets/python-mode/__and__ elpa/elpy-1.26.0/snippets/python-mode/__bool__ elpa/elpy-1.26.0/snippets/python-mode/__call__ elpa/elpy-1.26.0/snippets/python-mode/__cmp__ elpa/elpy-1.26.0/snippets/python-mode/__coerce__ elpa/elpy-1.26.0/snippets/python-mode/__complex__ elpa/elpy-1.26.0/snippets/python-mode/__contains__ elpa/elpy-1.26.0/snippets/python-mode/__del__ elpa/elpy-1.26.0/snippets/python-mode/__delattr__ elpa/elpy-1.26.0/snippets/python-mode/__delete__ elpa/elpy-1.26.0/snippets/python-mode/__delitem__ elpa/elpy-1.26.0/snippets/python-mode/__div__ elpa/elpy-1.26.0/snippets/python-mode/__divmod__ elpa/elpy-1.26.0/snippets/python-mode/__enter__ elpa/elpy-1.26.0/snippets/python-mode/__eq__ elpa/elpy-1.26.0/snippets/python-mode/__exit__ elpa/elpy-1.26.0/snippets/python-mode/__float__ elpa/elpy-1.26.0/snippets/python-mode/__floordiv__ elpa/elpy-1.26.0/snippets/python-mode/__ge__ elpa/elpy-1.26.0/snippets/python-mode/__get__ elpa/elpy-1.26.0/snippets/python-mode/__getattr__ elpa/elpy-1.26.0/snippets/python-mode/__getattribute__ elpa/elpy-1.26.0/snippets/python-mode/__getitem__ elpa/elpy-1.26.0/snippets/python-mode/__gt__ elpa/elpy-1.26.0/snippets/python-mode/__hash__ elpa/elpy-1.26.0/snippets/python-mode/__hex__ elpa/elpy-1.26.0/snippets/python-mode/__iadd__ elpa/elpy-1.26.0/snippets/python-mode/__iand__ elpa/elpy-1.26.0/snippets/python-mode/__idiv__ elpa/elpy-1.26.0/snippets/python-mode/__ifloordiv__ elpa/elpy-1.26.0/snippets/python-mode/__ilshift__ elpa/elpy-1.26.0/snippets/python-mode/__imod__ elpa/elpy-1.26.0/snippets/python-mode/__imul__ elpa/elpy-1.26.0/snippets/python-mode/__index__ elpa/elpy-1.26.0/snippets/python-mode/__init__ elpa/elpy-1.26.0/snippets/python-mode/__instancecheck__ elpa/elpy-1.26.0/snippets/python-mode/__int__ elpa/elpy-1.26.0/snippets/python-mode/__invert__ elpa/elpy-1.26.0/snippets/python-mode/__ior__ elpa/elpy-1.26.0/snippets/python-mode/__ipow__ elpa/elpy-1.26.0/snippets/python-mode/__irshift__ elpa/elpy-1.26.0/snippets/python-mode/__isub__ elpa/elpy-1.26.0/snippets/python-mode/__iter__ elpa/elpy-1.26.0/snippets/python-mode/__itruediv__ elpa/elpy-1.26.0/snippets/python-mode/__ixor__ elpa/elpy-1.26.0/snippets/python-mode/__le__ elpa/elpy-1.26.0/snippets/python-mode/__len__ elpa/elpy-1.26.0/snippets/python-mode/__long__ elpa/elpy-1.26.0/snippets/python-mode/__lshift__ elpa/elpy-1.26.0/snippets/python-mode/__lt__ elpa/elpy-1.26.0/snippets/python-mode/__mod__ elpa/elpy-1.26.0/snippets/python-mode/__mul__ elpa/elpy-1.26.0/snippets/python-mode/__ne__ elpa/elpy-1.26.0/snippets/python-mode/__neg__ elpa/elpy-1.26.0/snippets/python-mode/__new__ elpa/elpy-1.26.0/snippets/python-mode/__nonzero__ elpa/elpy-1.26.0/snippets/python-mode/__oct__ elpa/elpy-1.26.0/snippets/python-mode/__or__ elpa/elpy-1.26.0/snippets/python-mode/__pos__ elpa/elpy-1.26.0/snippets/python-mode/__pow__ elpa/elpy-1.26.0/snippets/python-mode/__radd__ elpa/elpy-1.26.0/snippets/python-mode/__rand__ elpa/elpy-1.26.0/snippets/python-mode/__rdivmod__ elpa/elpy-1.26.0/snippets/python-mode/__repr__ elpa/elpy-1.26.0/snippets/python-mode/__reversed__ elpa/elpy-1.26.0/snippets/python-mode/__rfloordiv__ elpa/elpy-1.26.0/snippets/python-mode/__rlshift__ elpa/elpy-1.26.0/snippets/python-mode/__rmod__ elpa/elpy-1.26.0/snippets/python-mode/__rmul__ elpa/elpy-1.26.0/snippets/python-mode/__ror__ elpa/elpy-1.26.0/snippets/python-mode/__rpow__ elpa/elpy-1.26.0/snippets/python-mode/__rrshift__ elpa/elpy-1.26.0/snippets/python-mode/__rshift__ elpa/elpy-1.26.0/snippets/python-mode/__rsub__ elpa/elpy-1.26.0/snippets/python-mode/__rtruediv__ elpa/elpy-1.26.0/snippets/python-mode/__rxor__ elpa/elpy-1.26.0/snippets/python-mode/__set__ elpa/elpy-1.26.0/snippets/python-mode/__setattr__ elpa/elpy-1.26.0/snippets/python-mode/__setitem__ elpa/elpy-1.26.0/snippets/python-mode/__slots__ elpa/elpy-1.26.0/snippets/python-mode/__str__ elpa/elpy-1.26.0/snippets/python-mode/__sub__ elpa/elpy-1.26.0/snippets/python-mode/__subclasscheck__ elpa/elpy-1.26.0/snippets/python-mode/__truediv__ elpa/elpy-1.26.0/snippets/python-mode/__unicode__ elpa/elpy-1.26.0/snippets/python-mode/__xor__ elpa/elpy-1.26.0/snippets/python-mode/ase elpa/elpy-1.26.0/snippets/python-mode/asne elpa/elpy-1.26.0/snippets/python-mode/asr elpa/elpy-1.26.0/snippets/python-mode/class elpa/elpy-1.26.0/snippets/python-mode/defs elpa/elpy-1.26.0/snippets/python-mode/enc elpa/elpy-1.26.0/snippets/python-mode/env elpa/elpy-1.26.0/snippets/python-mode/from elpa/elpy-1.26.0/snippets/python-mode/pdb elpa/elpy-1.26.0/snippets/python-mode/py3 elpa/elpy-1.26.0/snippets/python-mode/super
diffstat 130 files changed, 146 insertions(+), 38 deletions(-) [+]
line wrap: on
line diff
rename from elpa/elpy-1.25.0/elpy-autoloads.el
rename to elpa/elpy-1.26.0/elpy-autoloads.el
--- a/elpa/elpy-1.25.0/elpy-autoloads.el
+++ b/elpa/elpy-1.26.0/elpy-autoloads.el
@@ -3,7 +3,7 @@
 ;;; Code:
 (add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path))))
 
-;;;### (autoloads nil "elpy" "elpy.el" (23487 42492 429351 415000))
+;;;### (autoloads nil "elpy" "elpy.el" (23541 45845 643446 562000))
 ;;; Generated autoloads from elpy.el
 
 (autoload 'elpy-enable "elpy" "\
@@ -39,7 +39,7 @@
 ;;;***
 
 ;;;### (autoloads nil nil ("elpy-django.el" "elpy-pkg.el" "elpy-profile.el"
-;;;;;;  "elpy-refactor.el" "elpy-shell.el") (23487 42492 437351 994000))
+;;;;;;  "elpy-refactor.el" "elpy-shell.el") (23541 45845 655446 703000))
 
 ;;;***
 
rename from elpa/elpy-1.25.0/elpy-django.el
rename to elpa/elpy-1.26.0/elpy-django.el
--- a/elpa/elpy-1.25.0/elpy-django.el
+++ b/elpa/elpy-1.26.0/elpy-django.el
@@ -79,9 +79,11 @@
 (make-variable-buffer-local 'elpy-django-commands-with-req-arg)
 
 (defcustom elpy-django-test-runner-formats '(("django_nose.NoseTestSuiteRunner" . ":")
-                                             ("django.test.runner.DiscoverRunner" . "."))
+                                             (".*" . "."))
   "List of test runners and their format for calling tests.
 
+  The keys are the regular expressions to match the runner used in test, 
+while the values are the separators to use to build test target path.
 Some tests runners are called differently. For example, Nose requires a ':' when calling specific tests,
 but the default Django test runner uses '.'"
   :type 'list
@@ -191,11 +193,17 @@
 (defun elpy-django--get-test-format ()
   "When running a Django test, some test runners require a different format that others.
 Return the correct string format here."
-  (let  ((pair (assoc (elpy-django--get-test-runner) elpy-django-test-runner-formats)))
-    (if pair
-        ;; Return the associated test format
-        (cdr pair)
-      (error (format "Unable to find test format for `%s'" (elpy--get-django-test-runner))))))
+  (let ((runner (elpy-django--get-test-runner))
+        (found nil)
+        (formats elpy-django-test-runner-formats))
+    (while (and formats (not found))
+      (let* ((entry (car formats)) (regex (car entry)))
+        (when (string-match regex runner)
+          (setq found (cdr entry))))
+      (setq formats (cdr formats)))
+    (or found (error (format "Unable to find test format for `%s'"
+                             (elpy-django--get-test-runner))))))
+
 
 ;;;;;;;;;;;;;;;;;;;;;;
 ;;; User Functions
rename from elpa/elpy-1.25.0/elpy-pkg.el
rename to elpa/elpy-1.26.0/elpy-pkg.el
--- a/elpa/elpy-1.25.0/elpy-pkg.el
+++ b/elpa/elpy-1.26.0/elpy-pkg.el
@@ -1,4 +1,4 @@
-(define-package "elpy" "1.25.0" "Emacs Python Development Environment"
+(define-package "elpy" "1.26.0" "Emacs Python Development Environment"
   '((company "0.9.2")
     (emacs "24.4")
     (find-file-in-project "3.3")
rename from elpa/elpy-1.25.0/elpy-profile.el
rename to elpa/elpy-1.26.0/elpy-profile.el
rename from elpa/elpy-1.25.0/elpy-refactor.el
rename to elpa/elpy-1.26.0/elpy-refactor.el
rename from elpa/elpy-1.25.0/elpy-shell.el
rename to elpa/elpy-1.26.0/elpy-shell.el
rename from elpa/elpy-1.25.0/elpy.el
rename to elpa/elpy-1.26.0/elpy.el
--- a/elpa/elpy-1.25.0/elpy.el
+++ b/elpa/elpy-1.26.0/elpy.el
@@ -4,7 +4,7 @@
 
 ;; Author: Jorgen Schaefer <contact@jorgenschaefer.de>
 ;; URL: https://github.com/jorgenschaefer/elpy
-;; Version: 1.25.0
+;; Version: 1.26.0
 ;; Keywords: Python, IDE, Languages, Tools
 ;; Package-Requires: ((company "0.9.2") (emacs "24.4") (find-file-in-project "3.3")  (highlight-indentation "0.5.0") (pyvenv "1.3") (yasnippet "0.8.0") (s "1.11.0"))
 
@@ -53,7 +53,7 @@
 (require 'pyvenv)
 (require 'find-file-in-project)
 
-(defconst elpy-version "1.25.0"
+(defconst elpy-version "1.26.0"
   "The version of the Elpy lisp code.")
 
 ;;;;;;;;;;;;;;;;;;;;;;
@@ -3038,6 +3038,19 @@
                        (point-min)))
               success error)))
 
+
+(defun elpy-rpc-get-oneline-docstring (&optional success error)
+  "Call the get_oneline_docstring API function.
+
+Returns a oneline docstring string for the symbol at point."
+  (when (< (buffer-size) elpy-rpc-ignored-buffer-size)
+    (elpy-rpc "get_oneline_docstring"
+              (list buffer-file-name
+                    (elpy-rpc--buffer-contents)
+                    (- (point)
+                       (point-min)))
+              success error)))
+
 (defun elpy-rpc-get-completions (&optional success error)
   "Call the get_completions API function.
 
@@ -3688,10 +3701,11 @@
      (require 'eldoc)
      (setq eldoc-minor-mode-string nil))
     (`buffer-init
-     ;; avoid interferences between eldoc and company meta frontend
-     (when (member 'elpy-module-company elpy-modules)
-       (set (make-local-variable 'company-frontends)
-            (delq 'company-echo-metadata-frontend company-frontends)))
+     ;; avoid eldoc message flickering when using eldoc and company modules jointly
+     (eldoc-add-command-completions "company-")
+     (eldoc-add-command-completions "python-indent-dedent-line-backspace")
+     (set (make-local-variable 'company-frontends)
+          (delq 'company-echo-metadata-frontend company-frontends))
      (set (make-local-variable 'eldoc-documentation-function)
           'elpy-eldoc-documentation)
      (eldoc-mode 1))
@@ -3710,32 +3724,52 @@
   (let ((flymake-error (elpy-flymake-error-at-point)))
     (if flymake-error
         flymake-error
+      ;; Try getting calltip
       (elpy-rpc-get-calltip
        (lambda (calltip)
-         (eldoc-message
-          (cond
-           ((not calltip)
-            (when elpy-eldoc-show-current-function
-              (let ((current-defun (python-info-current-defun)))
-                (when current-defun
-                  (format "In: %s()" current-defun)))))
-           ((stringp calltip)
-            calltip)
-           (t
-            (let ((name (cdr (assq 'name calltip)))
-                  (index (cdr (assq 'index calltip)))
-                  (params (cdr (assq 'params calltip))))
-              (when index
-                (setf (nth index params)
-                      (propertize (nth index params)
-                                  'face
-                                  'eldoc-highlight-function-argument)))
-              (let ((prefix (propertize name 'face
-                                        'font-lock-function-name-face))
-                    (args (format "(%s)" (mapconcat #'identity params ", "))))
+         (cond
+          ((stringp calltip)
+           (eldoc-message calltip))
+          (calltip
+           (let ((name (cdr (assq 'name calltip)))
+                 (index (cdr (assq 'index calltip)))
+                 (params (cdr (assq 'params calltip))))
+             (when index
+               (setf (nth index params)
+                     (propertize (nth index params)
+                                 'face
+                                 'eldoc-highlight-function-argument)))
+             (let ((prefix (propertize name 'face
+                                       'font-lock-function-name-face))
+                   (args (format "(%s)" (mapconcat #'identity params ", "))))
+               (eldoc-message
                 (if (version<= emacs-version "25")
                     (format "%s%s" prefix args)
-                  (eldoc-docstring-format-sym-doc prefix args nil)))))))))
+                  (eldoc-docstring-format-sym-doc prefix args nil))))))
+          (t
+           ;; Try getting oneline docstring
+           (elpy-rpc-get-oneline-docstring
+            (lambda (doc)
+              (cond
+               (doc
+                 (let ((name (cdr (assq 'name doc)))
+                       (doc (cdr (assq 'doc doc))))
+                   (let ((prefix (propertize (format "%s: " name)
+                                             'face
+                                             'font-lock-function-name-face)))
+                     (eldoc-message
+                     (if (version<= emacs-version "25")
+                         (format "%s%s" prefix doc)
+                       (let ((eldoc-echo-area-use-multiline-p nil))
+                         (eldoc-docstring-format-sym-doc
+                                         prefix doc nil)))
+                     ))))
+               ;; Give the current definition
+               (elpy-eldoc-show-current-function
+                (let ((current-defun (python-info-current-defun)))
+                  (when current-defun
+                    (eldoc-message
+                     (format "In: %s()" current-defun))))))))))))
       ;; Return the last message until we're done
       eldoc-last-message)))
 
rename from elpa/elpy-1.25.0/elpy/__init__.py
rename to elpa/elpy-1.26.0/elpy/__init__.py
--- a/elpa/elpy-1.25.0/elpy/__init__.py
+++ b/elpa/elpy-1.26.0/elpy/__init__.py
@@ -37,5 +37,5 @@
 """
 
 __author__ = "Jorgen Schaefer"
-__version__ = "1.25.0"
+__version__ = "1.26.0"
 __license__ = "GPL"
rename from elpa/elpy-1.25.0/elpy/__main__.py
rename to elpa/elpy-1.26.0/elpy/__main__.py
rename from elpa/elpy-1.25.0/elpy/auto_pep8.py
rename to elpa/elpy-1.26.0/elpy/auto_pep8.py
rename from elpa/elpy-1.25.0/elpy/blackutil.py
rename to elpa/elpy-1.26.0/elpy/blackutil.py
rename from elpa/elpy-1.25.0/elpy/compat.py
rename to elpa/elpy-1.26.0/elpy/compat.py
rename from elpa/elpy-1.25.0/elpy/jedibackend.py
rename to elpa/elpy-1.26.0/elpy/jedibackend.py
--- a/elpa/elpy-1.25.0/elpy/jedibackend.py
+++ b/elpa/elpy-1.26.0/elpy/jedibackend.py
@@ -152,6 +152,65 @@
                 "index": call.index,
                 "params": params}
 
+    def rpc_get_oneline_docstring(self, filename, source, offset):
+        """Return a oneline docstring for the symbol at offset"""
+        line, column = pos_to_linecol(source, offset)
+        definitions = run_with_debug(jedi, 'goto_definitions',
+                                     source=source, line=line, column=column,
+                                     path=filename, encoding='utf-8')
+        assignments = run_with_debug(jedi, 'goto_assignments',
+                                     source=source, line=line, column=column,
+                                     path=filename, encoding='utf-8')
+        if definitions:
+            definition = definitions[0]
+        else:
+            definition = None
+        if assignments:
+            assignment = assignments[0]
+        else:
+            assignment = None
+        if definition:
+            # Get name
+            if definition.type in ['function', 'class']:
+                raw_name = definition.name
+                name = '{}()'.format(raw_name)
+                doc = definition.docstring().split('\n')
+            elif definition.type in ['module']:
+                raw_name = definition.name
+                name = '{} {}'.format(raw_name, definition.type)
+                doc = definition.docstring().split('\n')
+            elif definition.type in ['instance']:
+                raw_name = assignment.name
+                name = raw_name
+                doc = assignment.docstring().split('\n')
+            else:
+                return None
+            # Keep only the first paragraph that is not a function declaration
+            lines = []
+            call = "{}(".format(raw_name)
+            # last line
+            doc.append('')
+            for i in range(len(doc)):
+                if doc[i] == '' and len(lines) != 0:
+                    paragraph = " ".join(lines)
+                    lines = []
+                    if call != paragraph[0:len(call)]:
+                        break
+                    paragraph = ""
+                    continue
+                lines.append(doc[i])
+            # Keep only the first sentence
+            onelinedoc = paragraph.split('. ', 1)
+            if len(onelinedoc) == 2:
+                onelinedoc = onelinedoc[0] + '.'
+            else:
+                onelinedoc = onelinedoc[0]
+            if onelinedoc == '':
+                onelinedoc = "No documentation"
+            return {"name": name,
+                    "doc": onelinedoc}
+        return None
+
     def rpc_get_usages(self, filename, source, offset):
         """Return the uses of the symbol at offset.
 
rename from elpa/elpy-1.25.0/elpy/pydocutils.py
rename to elpa/elpy-1.26.0/elpy/pydocutils.py
rename from elpa/elpy-1.25.0/elpy/refactor.py
rename to elpa/elpy-1.26.0/elpy/refactor.py
rename from elpa/elpy-1.25.0/elpy/rpc.py
rename to elpa/elpy-1.26.0/elpy/rpc.py
rename from elpa/elpy-1.25.0/elpy/server.py
rename to elpa/elpy-1.26.0/elpy/server.py
--- a/elpa/elpy-1.25.0/elpy/server.py
+++ b/elpa/elpy-1.26.0/elpy/server.py
@@ -71,6 +71,13 @@
         return self._call_backend("rpc_get_calltip", None, filename,
                                   get_source(source), offset)
 
+    def rpc_get_oneline_docstring(self, filename, source, offset):
+        """Get a oneline docstring for the symbol at the offset.
+
+        """
+        return self._call_backend("rpc_get_oneline_docstring", None, filename,
+                                  get_source(source), offset)
+
     def rpc_get_completions(self, filename, source, offset):
         """Get a list of completion candidates for the symbol at offset.
 
rename from elpa/elpy-1.25.0/elpy/tests/__init__.py
rename to elpa/elpy-1.26.0/elpy/tests/__init__.py
rename from elpa/elpy-1.25.0/elpy/tests/compat.py
rename to elpa/elpy-1.26.0/elpy/tests/compat.py
rename from elpa/elpy-1.25.0/elpy/tests/support.py
rename to elpa/elpy-1.26.0/elpy/tests/support.py
rename from elpa/elpy-1.25.0/elpy/tests/test_auto_pep8.py
rename to elpa/elpy-1.26.0/elpy/tests/test_auto_pep8.py
rename from elpa/elpy-1.25.0/elpy/tests/test_black.py
rename to elpa/elpy-1.26.0/elpy/tests/test_black.py
rename from elpa/elpy-1.25.0/elpy/tests/test_jedibackend.py
rename to elpa/elpy-1.26.0/elpy/tests/test_jedibackend.py
rename from elpa/elpy-1.25.0/elpy/tests/test_pydocutils.py
rename to elpa/elpy-1.26.0/elpy/tests/test_pydocutils.py
rename from elpa/elpy-1.25.0/elpy/tests/test_refactor.py
rename to elpa/elpy-1.26.0/elpy/tests/test_refactor.py
rename from elpa/elpy-1.25.0/elpy/tests/test_rpc.py
rename to elpa/elpy-1.26.0/elpy/tests/test_rpc.py
rename from elpa/elpy-1.25.0/elpy/tests/test_server.py
rename to elpa/elpy-1.26.0/elpy/tests/test_server.py
rename from elpa/elpy-1.25.0/elpy/tests/test_support.py
rename to elpa/elpy-1.26.0/elpy/tests/test_support.py
rename from elpa/elpy-1.25.0/elpy/tests/test_yapf.py
rename to elpa/elpy-1.26.0/elpy/tests/test_yapf.py
rename from elpa/elpy-1.25.0/elpy/yapfutil.py
rename to elpa/elpy-1.26.0/elpy/yapfutil.py
rename from elpa/elpy-1.25.0/snippets/python-mode/.yas-setup.el
rename to elpa/elpy-1.26.0/snippets/python-mode/.yas-setup.el
rename from elpa/elpy-1.25.0/snippets/python-mode/__abs__
rename to elpa/elpy-1.26.0/snippets/python-mode/__abs__
rename from elpa/elpy-1.25.0/snippets/python-mode/__add__
rename to elpa/elpy-1.26.0/snippets/python-mode/__add__
rename from elpa/elpy-1.25.0/snippets/python-mode/__and__
rename to elpa/elpy-1.26.0/snippets/python-mode/__and__
rename from elpa/elpy-1.25.0/snippets/python-mode/__bool__
rename to elpa/elpy-1.26.0/snippets/python-mode/__bool__
rename from elpa/elpy-1.25.0/snippets/python-mode/__call__
rename to elpa/elpy-1.26.0/snippets/python-mode/__call__
rename from elpa/elpy-1.25.0/snippets/python-mode/__cmp__
rename to elpa/elpy-1.26.0/snippets/python-mode/__cmp__
rename from elpa/elpy-1.25.0/snippets/python-mode/__coerce__
rename to elpa/elpy-1.26.0/snippets/python-mode/__coerce__
rename from elpa/elpy-1.25.0/snippets/python-mode/__complex__
rename to elpa/elpy-1.26.0/snippets/python-mode/__complex__
rename from elpa/elpy-1.25.0/snippets/python-mode/__contains__
rename to elpa/elpy-1.26.0/snippets/python-mode/__contains__
rename from elpa/elpy-1.25.0/snippets/python-mode/__del__
rename to elpa/elpy-1.26.0/snippets/python-mode/__del__
rename from elpa/elpy-1.25.0/snippets/python-mode/__delattr__
rename to elpa/elpy-1.26.0/snippets/python-mode/__delattr__
rename from elpa/elpy-1.25.0/snippets/python-mode/__delete__
rename to elpa/elpy-1.26.0/snippets/python-mode/__delete__
rename from elpa/elpy-1.25.0/snippets/python-mode/__delitem__
rename to elpa/elpy-1.26.0/snippets/python-mode/__delitem__
rename from elpa/elpy-1.25.0/snippets/python-mode/__div__
rename to elpa/elpy-1.26.0/snippets/python-mode/__div__
rename from elpa/elpy-1.25.0/snippets/python-mode/__divmod__
rename to elpa/elpy-1.26.0/snippets/python-mode/__divmod__
rename from elpa/elpy-1.25.0/snippets/python-mode/__enter__
rename to elpa/elpy-1.26.0/snippets/python-mode/__enter__
rename from elpa/elpy-1.25.0/snippets/python-mode/__eq__
rename to elpa/elpy-1.26.0/snippets/python-mode/__eq__
rename from elpa/elpy-1.25.0/snippets/python-mode/__exit__
rename to elpa/elpy-1.26.0/snippets/python-mode/__exit__
rename from elpa/elpy-1.25.0/snippets/python-mode/__float__
rename to elpa/elpy-1.26.0/snippets/python-mode/__float__
rename from elpa/elpy-1.25.0/snippets/python-mode/__floordiv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__floordiv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ge__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ge__
rename from elpa/elpy-1.25.0/snippets/python-mode/__get__
rename to elpa/elpy-1.26.0/snippets/python-mode/__get__
rename from elpa/elpy-1.25.0/snippets/python-mode/__getattr__
rename to elpa/elpy-1.26.0/snippets/python-mode/__getattr__
rename from elpa/elpy-1.25.0/snippets/python-mode/__getattribute__
rename to elpa/elpy-1.26.0/snippets/python-mode/__getattribute__
rename from elpa/elpy-1.25.0/snippets/python-mode/__getitem__
rename to elpa/elpy-1.26.0/snippets/python-mode/__getitem__
rename from elpa/elpy-1.25.0/snippets/python-mode/__gt__
rename to elpa/elpy-1.26.0/snippets/python-mode/__gt__
rename from elpa/elpy-1.25.0/snippets/python-mode/__hash__
rename to elpa/elpy-1.26.0/snippets/python-mode/__hash__
rename from elpa/elpy-1.25.0/snippets/python-mode/__hex__
rename to elpa/elpy-1.26.0/snippets/python-mode/__hex__
rename from elpa/elpy-1.25.0/snippets/python-mode/__iadd__
rename to elpa/elpy-1.26.0/snippets/python-mode/__iadd__
rename from elpa/elpy-1.25.0/snippets/python-mode/__iand__
rename to elpa/elpy-1.26.0/snippets/python-mode/__iand__
rename from elpa/elpy-1.25.0/snippets/python-mode/__idiv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__idiv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ifloordiv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ifloordiv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ilshift__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ilshift__
rename from elpa/elpy-1.25.0/snippets/python-mode/__imod__
rename to elpa/elpy-1.26.0/snippets/python-mode/__imod__
rename from elpa/elpy-1.25.0/snippets/python-mode/__imul__
rename to elpa/elpy-1.26.0/snippets/python-mode/__imul__
rename from elpa/elpy-1.25.0/snippets/python-mode/__index__
rename to elpa/elpy-1.26.0/snippets/python-mode/__index__
rename from elpa/elpy-1.25.0/snippets/python-mode/__init__
rename to elpa/elpy-1.26.0/snippets/python-mode/__init__
rename from elpa/elpy-1.25.0/snippets/python-mode/__instancecheck__
rename to elpa/elpy-1.26.0/snippets/python-mode/__instancecheck__
rename from elpa/elpy-1.25.0/snippets/python-mode/__int__
rename to elpa/elpy-1.26.0/snippets/python-mode/__int__
rename from elpa/elpy-1.25.0/snippets/python-mode/__invert__
rename to elpa/elpy-1.26.0/snippets/python-mode/__invert__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ior__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ior__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ipow__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ipow__
rename from elpa/elpy-1.25.0/snippets/python-mode/__irshift__
rename to elpa/elpy-1.26.0/snippets/python-mode/__irshift__
rename from elpa/elpy-1.25.0/snippets/python-mode/__isub__
rename to elpa/elpy-1.26.0/snippets/python-mode/__isub__
rename from elpa/elpy-1.25.0/snippets/python-mode/__iter__
rename to elpa/elpy-1.26.0/snippets/python-mode/__iter__
rename from elpa/elpy-1.25.0/snippets/python-mode/__itruediv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__itruediv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ixor__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ixor__
rename from elpa/elpy-1.25.0/snippets/python-mode/__le__
rename to elpa/elpy-1.26.0/snippets/python-mode/__le__
rename from elpa/elpy-1.25.0/snippets/python-mode/__len__
rename to elpa/elpy-1.26.0/snippets/python-mode/__len__
rename from elpa/elpy-1.25.0/snippets/python-mode/__long__
rename to elpa/elpy-1.26.0/snippets/python-mode/__long__
rename from elpa/elpy-1.25.0/snippets/python-mode/__lshift__
rename to elpa/elpy-1.26.0/snippets/python-mode/__lshift__
rename from elpa/elpy-1.25.0/snippets/python-mode/__lt__
rename to elpa/elpy-1.26.0/snippets/python-mode/__lt__
rename from elpa/elpy-1.25.0/snippets/python-mode/__mod__
rename to elpa/elpy-1.26.0/snippets/python-mode/__mod__
rename from elpa/elpy-1.25.0/snippets/python-mode/__mul__
rename to elpa/elpy-1.26.0/snippets/python-mode/__mul__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ne__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ne__
rename from elpa/elpy-1.25.0/snippets/python-mode/__neg__
rename to elpa/elpy-1.26.0/snippets/python-mode/__neg__
rename from elpa/elpy-1.25.0/snippets/python-mode/__new__
rename to elpa/elpy-1.26.0/snippets/python-mode/__new__
rename from elpa/elpy-1.25.0/snippets/python-mode/__nonzero__
rename to elpa/elpy-1.26.0/snippets/python-mode/__nonzero__
rename from elpa/elpy-1.25.0/snippets/python-mode/__oct__
rename to elpa/elpy-1.26.0/snippets/python-mode/__oct__
rename from elpa/elpy-1.25.0/snippets/python-mode/__or__
rename to elpa/elpy-1.26.0/snippets/python-mode/__or__
rename from elpa/elpy-1.25.0/snippets/python-mode/__pos__
rename to elpa/elpy-1.26.0/snippets/python-mode/__pos__
rename from elpa/elpy-1.25.0/snippets/python-mode/__pow__
rename to elpa/elpy-1.26.0/snippets/python-mode/__pow__
rename from elpa/elpy-1.25.0/snippets/python-mode/__radd__
rename to elpa/elpy-1.26.0/snippets/python-mode/__radd__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rand__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rand__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rdivmod__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rdivmod__
rename from elpa/elpy-1.25.0/snippets/python-mode/__repr__
rename to elpa/elpy-1.26.0/snippets/python-mode/__repr__
rename from elpa/elpy-1.25.0/snippets/python-mode/__reversed__
rename to elpa/elpy-1.26.0/snippets/python-mode/__reversed__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rfloordiv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rfloordiv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rlshift__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rlshift__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rmod__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rmod__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rmul__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rmul__
rename from elpa/elpy-1.25.0/snippets/python-mode/__ror__
rename to elpa/elpy-1.26.0/snippets/python-mode/__ror__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rpow__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rpow__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rrshift__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rrshift__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rshift__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rshift__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rsub__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rsub__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rtruediv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rtruediv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__rxor__
rename to elpa/elpy-1.26.0/snippets/python-mode/__rxor__
rename from elpa/elpy-1.25.0/snippets/python-mode/__set__
rename to elpa/elpy-1.26.0/snippets/python-mode/__set__
rename from elpa/elpy-1.25.0/snippets/python-mode/__setattr__
rename to elpa/elpy-1.26.0/snippets/python-mode/__setattr__
rename from elpa/elpy-1.25.0/snippets/python-mode/__setitem__
rename to elpa/elpy-1.26.0/snippets/python-mode/__setitem__
rename from elpa/elpy-1.25.0/snippets/python-mode/__slots__
rename to elpa/elpy-1.26.0/snippets/python-mode/__slots__
rename from elpa/elpy-1.25.0/snippets/python-mode/__str__
rename to elpa/elpy-1.26.0/snippets/python-mode/__str__
rename from elpa/elpy-1.25.0/snippets/python-mode/__sub__
rename to elpa/elpy-1.26.0/snippets/python-mode/__sub__
rename from elpa/elpy-1.25.0/snippets/python-mode/__subclasscheck__
rename to elpa/elpy-1.26.0/snippets/python-mode/__subclasscheck__
rename from elpa/elpy-1.25.0/snippets/python-mode/__truediv__
rename to elpa/elpy-1.26.0/snippets/python-mode/__truediv__
rename from elpa/elpy-1.25.0/snippets/python-mode/__unicode__
rename to elpa/elpy-1.26.0/snippets/python-mode/__unicode__
rename from elpa/elpy-1.25.0/snippets/python-mode/__xor__
rename to elpa/elpy-1.26.0/snippets/python-mode/__xor__
rename from elpa/elpy-1.25.0/snippets/python-mode/ase
rename to elpa/elpy-1.26.0/snippets/python-mode/ase
rename from elpa/elpy-1.25.0/snippets/python-mode/asne
rename to elpa/elpy-1.26.0/snippets/python-mode/asne
rename from elpa/elpy-1.25.0/snippets/python-mode/asr
rename to elpa/elpy-1.26.0/snippets/python-mode/asr
rename from elpa/elpy-1.25.0/snippets/python-mode/class
rename to elpa/elpy-1.26.0/snippets/python-mode/class
rename from elpa/elpy-1.25.0/snippets/python-mode/defs
rename to elpa/elpy-1.26.0/snippets/python-mode/defs
rename from elpa/elpy-1.25.0/snippets/python-mode/enc
rename to elpa/elpy-1.26.0/snippets/python-mode/enc
rename from elpa/elpy-1.25.0/snippets/python-mode/env
rename to elpa/elpy-1.26.0/snippets/python-mode/env
rename from elpa/elpy-1.25.0/snippets/python-mode/from
rename to elpa/elpy-1.26.0/snippets/python-mode/from
rename from elpa/elpy-1.25.0/snippets/python-mode/pdb
rename to elpa/elpy-1.26.0/snippets/python-mode/pdb
rename from elpa/elpy-1.25.0/snippets/python-mode/py3
rename to elpa/elpy-1.26.0/snippets/python-mode/py3
rename from elpa/elpy-1.25.0/snippets/python-mode/super
rename to elpa/elpy-1.26.0/snippets/python-mode/super