From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ken Mankoff Subject: Re: named python session Date: Wed, 12 Aug 2015 09:34:34 -0700 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPYzC-0007Kt-H5 for emacs-orgmode@gnu.org; Wed, 12 Aug 2015 12:34:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPYz8-0003vX-Ca for emacs-orgmode@gnu.org; Wed, 12 Aug 2015 12:34:42 -0400 Received: from mail-pa0-x22c.google.com ([2607:f8b0:400e:c03::22c]:36791) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPYz8-0003vD-5W for emacs-orgmode@gnu.org; Wed, 12 Aug 2015 12:34:38 -0400 Received: by pacrr5 with SMTP id rr5so17847229pac.3 for ; Wed, 12 Aug 2015 09:34:37 -0700 (PDT) In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Andreas Leha Cc: emacs-orgmode@gnu.org Hi Andreas, On 2015-08-12 at 08:06, Andreas Leha wrote: > How do I associate that with the python process in *mypy*? > I am asked to start python when I run python-shell-send-region. I have set up my system so that Org asks for a buffer name every time =org-edit-special= is called. This may be helpful to you. -k. *** Custom Python Session Names https://github.com/jorgenschaefer/elpy/issues/383 I want each python session to optionally have a unique name, so that I can run multiple sessions in multiple windows/buffers/directories and not have them interact/interfere. Here I've copied =elpy-shell-get-or-create-process= from =elpy.el= and modified it. I also have to modify =python-shell-get-process-name=. This all is fairly easy, except when executing from Org it gets more complicated, hence the special case if a function called from =org-ctrl-c-ctrl-c=. #+BEGIN_SRC emacs-lisp :results none (defun elpy-shell-get-or-create-process () "Get or create an inferior Python process for current buffer and return it. Customized by KDM to make dedicated sessions" (let* ((bufname (format "*%s*" (python-shell-get-process-name t))) (proc (get-buffer-process bufname))) (if proc proc (run-python (python-shell-parse-command) t nil) ;; DEDICATED! (get-buffer-process bufname)))) (defun python-shell-get-process-name (dedicated) (if (equal this-command 'org-ctrl-c-ctrl-c) (kdm/orig-py-sh-get-proc-name dedicated) (kdm/my-py-sh-get-proc-name dedicated))) (defun kdm/orig-py-sh-get-proc-name (dedicated) "Calculate the appropriate process name for inferior Python process. If DEDICATED is t returns a string with the form `python-shell-buffer-name'[variable `buffer-name']." (let ((process-name (if (and dedicated (buffer-name)) (format "%s[%s]" python-shell-buffer-name (buffer-name)) (format "%s" python-shell-buffer-name)))) process-name)) (defun kdm/my-py-sh-get-proc-name (dedicated) (if (boundp 'py-buf-proc-name) (format "%s" py-buf-proc-name) (setq-local py-buf-proc-name (format "%s" (completing-read "Python session name: " nil nil nil (buffer-name) nil (buffer-name))) ))) #+END_SRC