Skip to content

[REGRESSION] Recent commits break the password prompt for Jupyter servers #480

Closed
@NightMachinery

Description

@NightMachinery

This bug is present on the latest commit, but it is not present in the commit 053a78da252b19cf59cefe6b83f9c4531a38d6b2.
I did not check other commits.

The bug is triggered when I try to run

#+begin_src jupyter-python :kernel py_base :session /jpy:127.0.0.1#6035:orgk1/ :async yes :exports both
...
#+end_src

for the first time, which causes emacs-jupyter to ask whether http://127.0.0.1:6035 is authenticated using a token. Answering no, this error happens. The expected behavior is to ask for a password.

Here is the stacktrace:

Debugger entered--Lisp error: (wrong-number-of-arguments (((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))) 0)
  (closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote))))()
  funcall((closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))))
  (url-hexify-string (funcall passwd))
  (concat "password=" (url-hexify-string (funcall passwd)))
  (let ((jupyter-api-request-method "POST") (jupyter-api-request-headers (nconc (list (cons "Content-Type" "application/x-www-form-urlencoded")) jupyter-api-request-headers)) (jupyter-api-request-data (concat "password=" (url-hexify-string (funcall passwd))))) (jupyter-api-login client))
  (closure ((passwd closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))) (client . #<jupyter-server jupyter-server-4cdff9dc>)) nil (let ((jupyter-api-request-method "POST") (jupyter-api-request-headers (nconc (list (cons "Content-Type" "application/x-www-form-urlencoded")) jupyter-api-request-headers)) (jupyter-api-request-data (concat "password=" (url-hexify-string (funcall passwd))))) (jupyter-api-login client)))()
  apply((closure ((passwd closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))) (client . #<jupyter-server jupyter-server-4cdff9dc>)) nil (let ((jupyter-api-request-method "POST") (jupyter-api-request-headers (nconc (list (cons "Content-Type" "application/x-www-form-urlencoded")) jupyter-api-request-headers)) (jupyter-api-request-data (concat "password=" (url-hexify-string (funcall passwd))))) (jupyter-api-login client))) nil)
  #f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>)()
  funcall(#f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>))
  (progn (funcall authenticator) (jupyter-api-server-accessible-p client))
  (not (progn (funcall authenticator) (jupyter-api-server-accessible-p client)))
  (and (not (progn (funcall authenticator) (jupyter-api-server-accessible-p client))) (not (= 0 (setq max-tries (1- max-tries)))))
  (while (and (not (progn (funcall authenticator) (jupyter-api-server-accessible-p client))) (not (= 0 (setq max-tries (1- max-tries))))))
  (let ((jupyter-api-request-headers (nconc (jupyter-api-xsrf-header-from-cookies (eieio-oref client 'url)) (jupyter-api-auth-headers client)))) (while (and (not (progn (funcall authenticator) (jupyter-api-server-accessible-p client))) (not (= 0 (setq max-tries (1- max-tries)))))))
  (let ((auth (eieio-oref client 'auth))) (jupyter-api-request-xsrf-cookie client) (let ((jupyter-api-request-headers (nconc (jupyter-api-xsrf-header-from-cookies (eieio-oref client 'url)) (jupyter-api-auth-headers client)))) (while (and (not (progn (funcall authenticator) (jupyter-api-server-accessible-p client))) (not (= 0 (setq max-tries (1- max-tries))))))) (if (= 0 max-tries) (progn (eieio-oset client 'auth auth) (signal 'jupyter-api-authentication-failed (list client)))))
  (let ((jupyter-api-authentication-in-progress-p t) (max-tries jupyter-api-max-authentication-attempts)) (let ((auth (eieio-oref client 'auth))) (jupyter-api-request-xsrf-cookie client) (let ((jupyter-api-request-headers (nconc (jupyter-api-xsrf-header-from-cookies (eieio-oref client ...)) (jupyter-api-auth-headers client)))) (while (and (not (progn (funcall authenticator) (jupyter-api-server-accessible-p client))) (not (= 0 (setq max-tries ...)))))) (if (= 0 max-tries) (progn (eieio-oset client 'auth auth) (signal 'jupyter-api-authentication-failed (list client))))))
  (progn (let ((jupyter-api-authentication-in-progress-p t) (max-tries jupyter-api-max-authentication-attempts)) (let ((auth (eieio-oref client 'auth))) (jupyter-api-request-xsrf-cookie client) (let ((jupyter-api-request-headers (nconc (jupyter-api-xsrf-header-from-cookies ...) (jupyter-api-auth-headers client)))) (while (and (not (progn ... ...)) (not (= 0 ...))))) (if (= 0 max-tries) (progn (eieio-oset client 'auth auth) (signal 'jupyter-api-authentication-failed (list client)))))))
  (closure (gnutls-verify-error url-callback-arguments url-http-response-status url-http-end-of-headers url-http-content-type t) (client authenticator) "Call AUTHENTICATOR then check if CLIENT can access..." (progn (let ((jupyter-api-authentication-in-progress-p t) (max-tries jupyter-api-max-authentication-attempts)) (let ((auth (eieio-oref client ...))) (jupyter-api-request-xsrf-cookie client) (let ((jupyter-api-request-headers ...)) (while (and ... ...))) (if (= 0 max-tries) (progn (eieio-oset client ... auth) (signal ... ...)))))))(#<jupyter-server jupyter-server-4cdff9dc> #f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>))
  apply((closure (gnutls-verify-error url-callback-arguments url-http-response-status url-http-end-of-headers url-http-content-type t) (client authenticator) "Call AUTHENTICATOR then check if CLIENT can access..." (progn (let ((jupyter-api-authentication-in-progress-p t) (max-tries jupyter-api-max-authentication-attempts)) (let ((auth (eieio-oref client ...))) (jupyter-api-request-xsrf-cookie client) (let ((jupyter-api-request-headers ...)) (while (and ... ...))) (if (= 0 max-tries) (progn (eieio-oset client ... auth) (signal ... ...))))))) #<jupyter-server jupyter-server-4cdff9dc> #f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>))
  #f(compiled-function (arg &rest args) #<bytecode 0xa4a714571878973>)(#<jupyter-server jupyter-server-4cdff9dc> #f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>))
  apply(#f(compiled-function (arg &rest args) #<bytecode 0xa4a714571878973>) #<jupyter-server jupyter-server-4cdff9dc> #f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>) nil)
  jupyter-api-authenticate(#<jupyter-server jupyter-server-4cdff9dc> #f(compiled-function (&rest args2) #<bytecode -0xae2907cad5577bf>))
  (progn (or (functionp passwd) (setq passwd #'(lambda nil (read-passwd (format "Password [%s]: " (eieio-oref client ...)))))) (jupyter-api-authenticate client (apply-partially #'(lambda nil (let ((jupyter-api-request-method "POST") (jupyter-api-request-headers ...) (jupyter-api-request-data ...)) (jupyter-api-login client))))) (eieio-oset client 'auth t))
  (progn (progn (or (functionp passwd) (setq passwd #'(lambda nil (read-passwd (format "Password [%s]: " ...))))) (jupyter-api-authenticate client (apply-partially #'(lambda nil (let (... ... ...) (jupyter-api-login client))))) (eieio-oset client 'auth t)))
  (closure (gnutls-verify-error url-callback-arguments url-http-response-status url-http-end-of-headers url-http-content-type t) (client _auth &optional passwd) "Authenticate CLIENT by asking for a password.\nIf P..." (progn (progn (or (functionp passwd) (setq passwd #'(lambda nil ...))) (jupyter-api-authenticate client (apply-partially #'(lambda nil ...))) (eieio-oset client 'auth t))))(#<jupyter-server jupyter-server-4cdff9dc> password (closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))))
  apply((closure (gnutls-verify-error url-callback-arguments url-http-response-status url-http-end-of-headers url-http-content-type t) (client _auth &optional passwd) "Authenticate CLIENT by asking for a password.\nIf P..." (progn (progn (or (functionp passwd) (setq passwd #'(lambda nil ...))) (jupyter-api-authenticate client (apply-partially #'(lambda nil ...))) (eieio-oset client 'auth t)))) #<jupyter-server jupyter-server-4cdff9dc> (password (closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote))))))
  #f(compiled-function (arg &rest args) #<bytecode 0xa4a178f11878973>)(#<jupyter-server jupyter-server-4cdff9dc> password (closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))))
  apply(#f(compiled-function (arg &rest args) #<bytecode 0xa4a178f11878973>) #<jupyter-server jupyter-server-4cdff9dc> password (closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))))
  jupyter-api-authenticate(#<jupyter-server jupyter-server-4cdff9dc> password (closure ((remote . "/jpy:127.0.0.1#6035:") (filename . "/jpy:127.0.0.1#6035:orgk1/")) (try) (jupyter-tramp-read-passwd filename (if (= 0 try) nil (format "Password for %s " remote)))))
  (cond ((y-or-n-p (format "Login to %s using a token? " url)) (jupyter-api-authenticate client 'token)) (t (tramp-set-connection-property v "first-password-request" t) (jupyter-api-authenticate client 'password (let ((remote (file-remote-p filename))) #'(lambda (try) (jupyter-tramp-read-passwd filename (if ... nil ...)))))))
  (if (jupyter-api-server-accessible-p client) nil (cond ((y-or-n-p (format "Login to %s using a token? " url)) (jupyter-api-authenticate client 'token)) (t (tramp-set-connection-property v "first-password-request" t) (jupyter-api-authenticate client 'password (let ((remote (file-remote-p filename))) #'(lambda (try) (jupyter-tramp-read-passwd filename ...)))))))
  (prog1 client (if (jupyter-api-server-accessible-p client) nil (cond ((y-or-n-p (format "Login to %s using a token? " url)) (jupyter-api-authenticate client 'token)) (t (tramp-set-connection-property v "first-password-request" t) (jupyter-api-authenticate client 'password (let ((remote ...)) #'(lambda ... ...)))))))
  (let* ((url (jupyter-tramp-url-from-file-name filename)) (client (jupyter-server :url url))) (prog1 client (if (jupyter-api-server-accessible-p client) nil (cond ((y-or-n-p (format "Login to %s using a token? " url)) (jupyter-api-authenticate client 'token)) (t (tramp-set-connection-property v "first-password-request" t) (jupyter-api-authenticate client 'password (let (...) #'...)))))))
  (progn (let* ((url (jupyter-tramp-url-from-file-name filename)) (client (jupyter-server :url url))) (prog1 client (if (jupyter-api-server-accessible-p client) nil (cond ((y-or-n-p (format "Login to %s using a token? " url)) (jupyter-api-authenticate client 'token)) (t (tramp-set-connection-property v "first-password-request" t) (jupyter-api-authenticate client 'password (let ... ...))))))))
  (setq value (progn (let* ((url (jupyter-tramp-url-from-file-name filename)) (client (jupyter-server :url url))) (prog1 client (if (jupyter-api-server-accessible-p client) nil (cond ((y-or-n-p ...) (jupyter-api-authenticate client ...)) (t (tramp-set-connection-property v "first-password-request" t) (jupyter-api-authenticate client ... ...))))))))
  (progn (setq value (progn (let* ((url (jupyter-tramp-url-from-file-name filename)) (client (jupyter-server :url url))) (prog1 client (if (jupyter-api-server-accessible-p client) nil (cond (... ...) (t ... ...))))))) (tramp-set-connection-property v "server" value))
  (if (eq value tramp-cache-undefined) (progn (setq value (progn (let* ((url (jupyter-tramp-url-from-file-name filename)) (client (jupyter-server :url url))) (prog1 client (if (jupyter-api-server-accessible-p client) nil (cond ... ...)))))) (tramp-set-connection-property v "server" value)))
  (let ((value (tramp-get-connection-property v "server" tramp-cache-undefined))) (if (eq value tramp-cache-undefined) (progn (setq value (progn (let* ((url ...) (client ...)) (prog1 client (if ... nil ...))))) (tramp-set-connection-property v "server" value))) value)
  (let* ((v (tramp-dissect-file-name filename)) (method (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 1 v))) (user (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 2 v))) (domain (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 3 v))) (host (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 4 v))) (port (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 5 v))) (localname (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 6 v))) (hop (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 7 v)))) (ignore method user domain host port localname hop) (let ((value (tramp-get-connection-property v "server" tramp-cache-undefined))) (if (eq value tramp-cache-undefined) (progn (setq value (progn (let* (... ...) (prog1 client ...)))) (tramp-set-connection-property v "server" value))) value))
  jupyter-tramp-server-from-file-name("/jpy:127.0.0.1#6035:orgk1/")
  (let* ((v (tramp-dissect-file-name rsession)) (method (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 1 v))) (user (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 2 v))) (domain (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 3 v))) (host (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 4 v))) (port (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 5 v))) (localname (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 6 v))) (hop (progn (or (progn (and (memq ... cl-struct-tramp-file-name-tags) t)) (signal 'wrong-type-argument (list 'tramp-file-name v))) (nth 7 v)))) (ignore method user domain host port localname hop) (if (member host '("127.0.0.1" "localhost")) (progn (setq port (tramp-file-name-port-or-default v)) (if (jupyter-port-available-p port) (progn (if (y-or-n-p (format "Notebook not started on port %s. Launch one? " port)) (jupyter-launch-notebook port) (user-error "Launch a notebook on port %s first." port)))))) (jupyter-tramp-server-from-file-name rsession))
  (let* ((rsession (progn (or (progn (and (memq ... cl-struct-org-babel-jupyter-session-tags) t)) (signal 'wrong-type-argument (list 'org-babel-jupyter-session session))) (aref session 1))) (server (let* ((v (tramp-dissect-file-name rsession)) (method (progn (or ... ...) (nth 1 v))) (user (progn (or ... ...) (nth 2 v))) (domain (progn (or ... ...) (nth 3 v))) (host (progn (or ... ...) (nth 4 v))) (port (progn (or ... ...) (nth 5 v))) (localname (progn (or ... ...) (nth 6 v))) (hop (progn (or ... ...) (nth 7 v)))) (ignore method user domain host port localname hop) (if (member host '("127.0.0.1" "localhost")) (progn (setq port (tramp-file-name-port-or-default v)) (if (jupyter-port-available-p port) (progn ...)))) (jupyter-tramp-server-from-file-name rsession)))) (if (jupyter-server-has-kernelspec-p server kernel) nil (error "No kernelspec matching \"%s\" exists at %s" kernel (eieio-oref server 'url))) (org-babel-jupyter-aliases-from-kernelspecs nil (jupyter-kernelspecs server)) (let ((sname (file-local-name rsession))) (let* ((id (and t (jupyter-server-kernel-id-from-name server sname)))) (if id (let* ((--cl-rest-- (or ... ...)) (name (car ...)) (id (car ...))) (progn (if (string-match-p kernel name) nil (error "\":kernel %s\" doesn't match \"%s\"" kernel name)) (jupyter-connect-server-repl server id nil nil 'jupyter-org-client))) (let ((client (jupyter-run-server-repl server kernel nil nil ...))) (prog1 client (jupyter-server-name-client-kernel client sname)))))))
  (progn (let* ((rsession (progn (or (progn (and ... t)) (signal 'wrong-type-argument (list ... session))) (aref session 1))) (server (let* ((v (tramp-dissect-file-name rsession)) (method (progn ... ...)) (user (progn ... ...)) (domain (progn ... ...)) (host (progn ... ...)) (port (progn ... ...)) (localname (progn ... ...)) (hop (progn ... ...))) (ignore method user domain host port localname hop) (if (member host '...) (progn (setq port ...) (if ... ...))) (jupyter-tramp-server-from-file-name rsession)))) (if (jupyter-server-has-kernelspec-p server kernel) nil (error "No kernelspec matching \"%s\" exists at %s" kernel (eieio-oref server 'url))) (org-babel-jupyter-aliases-from-kernelspecs nil (jupyter-kernelspecs server)) (let ((sname (file-local-name rsession))) (let* ((id (and t (jupyter-server-kernel-id-from-name server sname)))) (if id (let* ((--cl-rest-- ...) (name ...) (id ...)) (progn (if ... nil ...) (jupyter-connect-server-repl server id nil nil ...))) (let ((client ...)) (prog1 client (jupyter-server-name-client-kernel client sname))))))))
  (closure (cl-struct-org-babel-jupyter-server-session-tags cl-struct-org-babel-jupyter-remote-session-tags cl-struct-org-babel-jupyter-session-tags t) (session kernel) (progn (let* ((rsession (progn (or ... ...) (aref session 1))) (server (let* (... ... ... ... ... ... ... ...) (ignore method user domain host port localname hop) (if ... ...) (jupyter-tramp-server-from-file-name rsession)))) (if (jupyter-server-has-kernelspec-p server kernel) nil (error "No kernelspec matching \"%s\" exists at %s" kernel (eieio-oref server 'url))) (org-babel-jupyter-aliases-from-kernelspecs nil (jupyter-kernelspecs server)) (let ((sname (file-local-name rsession))) (let* ((id ...)) (if id (let* ... ...) (let ... ...)))))))(#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base")
  apply((closure (cl-struct-org-babel-jupyter-server-session-tags cl-struct-org-babel-jupyter-remote-session-tags cl-struct-org-babel-jupyter-session-tags t) (session kernel) (progn (let* ((rsession (progn (or ... ...) (aref session 1))) (server (let* (... ... ... ... ... ... ... ...) (ignore method user domain host port localname hop) (if ... ...) (jupyter-tramp-server-from-file-name rsession)))) (if (jupyter-server-has-kernelspec-p server kernel) nil (error "No kernelspec matching \"%s\" exists at %s" kernel (eieio-oref server 'url))) (org-babel-jupyter-aliases-from-kernelspecs nil (jupyter-kernelspecs server)) (let ((sname (file-local-name rsession))) (let* ((id ...)) (if id (let* ... ...) (let ... ...))))))) (#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base"))
  #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>)(#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base")
  apply(#f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>) (#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base"))
  (closure ((cl--args #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base") (cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest args) (apply cl--nm (or args cl--args)))()
  funcall((closure ((cl--args #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base") (cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest args) (apply cl--nm (or args cl--args))))
  (let ((client (funcall cl--cnm))) (prog1 client (jupyter-set client 'jupyter-include-other-output nil) (save-current-buffer (set-buffer (eieio-oref client 'buffer)) (let ((inhibit-read-only t)) (prog1 (progn (let (...) (if ... ...))) (let ((win ...)) (if win (progn ...))))))))
  (progn (let ((client (funcall cl--cnm))) (prog1 client (jupyter-set client 'jupyter-include-other-output nil) (save-current-buffer (set-buffer (eieio-oref client 'buffer)) (let ((inhibit-read-only t)) (prog1 (progn (let ... ...)) (let (...) (if win ...))))))))
  (closure ((cl--cnm closure ((cl--args #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base") (cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest args) (apply cl--nm (or args cl--args)))) (cl--cnm session _kernel) (progn (let ((client (funcall cl--cnm))) (prog1 client (jupyter-set client 'jupyter-include-other-output nil) (save-current-buffer (set-buffer (eieio-oref client ...)) (let (...) (prog1 ... ...)))))))((closure ((cl--args #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base") (cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest args) (apply cl--nm (or args cl--args))) #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base")
  apply((closure ((cl--cnm closure ((cl--args #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base") (cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest args) (apply cl--nm (or args cl--args)))) (cl--cnm session _kernel) (progn (let ((client (funcall cl--cnm))) (prog1 client (jupyter-set client 'jupyter-include-other-output nil) (save-current-buffer (set-buffer (eieio-oref client ...)) (let (...) (prog1 ... ...))))))) (closure ((cl--args #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base") (cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest args) (apply cl--nm (or args cl--args))) (#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base"))
  (let ((cl--cnm #'(lambda (&rest args) (apply cl--nm (or args cl--args))))) (apply #'(lambda (cl--cnm session _kernel) (progn (let ((client ...)) (prog1 client (jupyter-set client ... nil) (save-current-buffer ... ...))))) cl--cnm cl--args))
  (closure ((cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest cl--args) "Rename the returned client's REPL buffer to includ..." (let ((cl--cnm #'(lambda (&rest args) (apply cl--nm ...)))) (apply #'(lambda (cl--cnm session _kernel) (progn (let ... ...))) cl--cnm cl--args)))(#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base")
  apply((closure ((cl--nm . #f(compiled-function (&rest args) #<bytecode 0x1709115683f394c1>))) (&rest cl--args) "Rename the returned client's REPL buffer to includ..." (let ((cl--cnm #'(lambda (&rest args) (apply cl--nm ...)))) (apply #'(lambda (cl--cnm session _kernel) (progn (let ... ...))) cl--cnm cl--args))) #s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base")
  org-babel-jupyter-initiate-client(#s(org-babel-jupyter-server-session :name "/jpy:127.0.0.1#6035:orgk1/" :connect-repl-p nil) "py_base")
  (setq client (org-babel-jupyter-initiate-client (org-babel-jupyter-parse-session session) (alist-get :kernel params)))
  (if client nil (setq client (org-babel-jupyter-initiate-client (org-babel-jupyter-parse-session session) (alist-get :kernel params))) (puthash key client org-babel-jupyter-session-clients) (save-current-buffer (set-buffer (eieio-oref client 'buffer)) (let ((inhibit-read-only t)) (prog1 (progn (let ((forget-client ...)) (add-hook 'kill-buffer-hook forget-client nil t))) (let ((win (get-buffer-window))) (if win (progn (set-window-point win ...))))))))
  (let* ((key (org-babel-jupyter-session-key params)) (client (gethash key org-babel-jupyter-session-clients))) (if client nil (setq client (org-babel-jupyter-initiate-client (org-babel-jupyter-parse-session session) (alist-get :kernel params))) (puthash key client org-babel-jupyter-session-clients) (save-current-buffer (set-buffer (eieio-oref client 'buffer)) (let ((inhibit-read-only t)) (prog1 (progn (let (...) (add-hook ... forget-client nil t))) (let ((win ...)) (if win (progn ...))))))) (eieio-oref client 'buffer))
  org-babel-jupyter-initiate-session-by-key("/jpy:127.0.0.1#6035:orgk1/" ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")))
  (if (equal session "none") (error "Need a session to run") (if session (progn (setq session (org-babel-read session)))) (org-babel-jupyter-initiate-session-by-key session params))
  (closure (cl-struct-org-babel-jupyter-server-session-tags cl-struct-org-babel-jupyter-remote-session-tags cl-struct-org-babel-jupyter-session-tags t) (&optional session params) "Initialize a Jupyter SESSION according to PARAMS." (if (equal session "none") (error "Need a session to run") (if session (progn (setq session (org-babel-read session)))) (org-babel-jupyter-initiate-session-by-key session params)))("/jpy:127.0.0.1#6035:orgk1/" ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")))
  apply((closure (cl-struct-org-babel-jupyter-server-session-tags cl-struct-org-babel-jupyter-remote-session-tags cl-struct-org-babel-jupyter-session-tags t) (&optional session params) "Initialize a Jupyter SESSION according to PARAMS." (if (equal session "none") (error "Need a session to run") (if session (progn (setq session (org-babel-read session)))) (org-babel-jupyter-initiate-session-by-key session params))) ("/jpy:127.0.0.1#6035:orgk1/" ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no"))))
  org-babel-jupyter-initiate-session("/jpy:127.0.0.1#6035:orgk1/" ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")))
  (let* ((org-babel-jupyter-current-src-block-params params) (session (alist-get :session params)) (buf (org-babel-jupyter-initiate-session session params)) (jupyter-current-client (buffer-local-value 'jupyter-current-client buf)) (lang (jupyter-kernel-language jupyter-current-client)) (vars (org-babel-variable-assignments:jupyter params lang)) (code (progn (let* ((dir (and t ...))) (if dir (let* (... ...) (progn ... v)))) (org-babel-expand-body:jupyter body params vars lang)))) (let* ((val (org-babel-jupyter--execute code async-p))) (progn (ignore (consp val)) (let* ((x300 (car-safe val)) (x301 (cdr-safe val))) (progn (ignore (consp x301)) (let* ((x302 ...) (x303 ...)) (progn (ignore ...) (let ... ...))))))))
  (let ((result-params (assq :result-params params)) (async-p (or (equal (alist-get :async params) "yes") (plist-member params :async)))) (if (member "replace" result-params) (progn (org-babel-jupyter-cleanup-file-links))) (let* ((org-babel-jupyter-current-src-block-params params) (session (alist-get :session params)) (buf (org-babel-jupyter-initiate-session session params)) (jupyter-current-client (buffer-local-value 'jupyter-current-client buf)) (lang (jupyter-kernel-language jupyter-current-client)) (vars (org-babel-variable-assignments:jupyter params lang)) (code (progn (let* ((dir ...)) (if dir (let* ... ...))) (org-babel-expand-body:jupyter body params vars lang)))) (let* ((val (org-babel-jupyter--execute code async-p))) (progn (ignore (consp val)) (let* ((x300 (car-safe val)) (x301 (cdr-safe val))) (progn (ignore (consp x301)) (let* (... ...) (progn ... ...))))))))
  org-babel-execute:jupyter-python("from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")))
  #<subr org-babel-execute-src-block>(nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)") ((:results . "replace scalar") (:exports . "both") (:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no") (:kernel . "py_base") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:async . "yes") (:result-type . value) (:result-params "scalar" "replace") (:rowname-names) (:colname-names)))
  funcall(#<subr org-babel-execute-src-block> nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)") ((:results . "replace scalar") (:exports . "both") (:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no") (:kernel . "py_base") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:async . "yes") (:result-type . value) (:result-params "scalar" "replace") (:rowname-names) (:colname-names)))
  (if (or (assq :sync params) (not (assq :async params)) (member (car info) ob-async-no-async-languages-alist) (if (member (alist-get :session params) '("none" nil)) nil (if (memq (let* ((lang ...) (lang ...)) (or (alist-get lang +org-babel-mode-alist) lang)) +org-babel-native-async-langs) nil (message "Org babel: %s :session is incompatible with :async..." (car info)) (sleep-for 0.2)) t)) (funcall orig-fn arg info params) (funcall fn orig-fn arg info params))
  (let* ((info (or info (org-babel-get-src-block-info))) (params (org-babel-merge-params (nth 2 info) params))) (if (or (assq :sync params) (not (assq :async params)) (member (car info) ob-async-no-async-languages-alist) (if (member (alist-get :session params) '("none" nil)) nil (if (memq (let* (... ...) (or ... lang)) +org-babel-native-async-langs) nil (message "Org babel: %s :session is incompatible with :async..." (car info)) (sleep-for 0.2)) t)) (funcall orig-fn arg info params) (funcall fn orig-fn arg info params)))
  (if (null orig-fn) (funcall fn orig-fn arg info params) (let* ((info (or info (org-babel-get-src-block-info))) (params (org-babel-merge-params (nth 2 info) params))) (if (or (assq :sync params) (not (assq :async params)) (member (car info) ob-async-no-async-languages-alist) (if (member (alist-get :session params) '("none" nil)) nil (if (memq (let* ... ...) +org-babel-native-async-langs) nil (message "Org babel: %s :session is incompatible with :async..." (car info)) (sleep-for 0.2)) t)) (funcall orig-fn arg info params) (funcall fn orig-fn arg info params))))
  +org-babel-disable-async-maybe-a(#<subr ob-async-org-babel-execute-src-block> #<subr org-babel-execute-src-block> nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)"))
  apply(+org-babel-disable-async-maybe-a #<subr ob-async-org-babel-execute-src-block> (#<subr org-babel-execute-src-block> nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)")))
  ob-async-org-babel-execute-src-block(#<subr org-babel-execute-src-block> nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)"))
  apply(ob-async-org-babel-execute-src-block #<subr org-babel-execute-src-block> (nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)")))
  org-babel-execute-src-block(nil ("jupyter-python" "from pynight.common_jupyter import kernel_current_..." ((:colname-names) (:rowname-names) (:result-params "scalar" "replace") (:result-type . value) (:results . "scalar replace") (:exports . "both") (:async . "yes") (:session . "/jpy:127.0.0.1#6035:orgk1/") (:kernel . "py_base") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no")) "" nil 989 "(ref:%s)"))
  org-ctrl-c-ctrl-c(nil)
  funcall-interactively(org-ctrl-c-ctrl-c nil)
  command-execute(org-ctrl-c-ctrl-c)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions