Subject: [PATCH v2] gnu: Add emacs-pydoc.

From: jgart <[email-masked]>
Date: Wed, 14 Dec 2022 09:04:07 -0600

* gnu/packages/emacs-xyz.scm (emacs-pydoc): New variable.

Hi, just changed the wording in the phases in v2 for clarity.

all best,

jgart
---
 gnu/packages/emacs-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 3286928f8d..63e080c44b 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -196,6 +196,7 @@ (define-module (gnu packages emacs-xyz)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages lisp-xyz)
+  #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages music)
   #:use-module (gnu packages version-control)
@@ -8637,6 +8638,46 @@ (define-public emacs-popper
 windows Emacs produces, while still keeping them within arm’s reach.")
       (license license:gpl3+))))
 
+(define-public emacs-pydoc
+  ;; https://github.com/statmobile/pydoc/issues/31
+  (let ((commit "c8b667e17bfe3e63221f822c5c4d58c8fb4fea90")
+        (revision "0"))
+    (package
+      (name "emacs-pydoc")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (uri (git-reference
+               (url "https://github.com/statmobile/pydoc")
+               (commit commit)))
+         (method git-fetch)
+         (sha256
+          (base32 "082ar5w28dknaa63mf587vdzr78xlnvh8lbxqq3hk6qa2c72akam"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (arguments
+        (list
+         #:phases
+         #~(modify-phases %standard-phases
+            (add-after 'unpack 'patch-python-executable
+              (lambda* (#:key outputs #:allow-other-keys)
+                (emacs-substitute-variables "pydoc.el"
+                  ("pydoc-python-command"
+                    (search-input-file outputs "bin/python")))))
+            (add-after 'unpack 'patch-lsof-executable
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "pydoc.el"
+                  (("\"lsof")
+                   ;; Replace removed double quote in parsing of lsof executable.
+                   (string-append "\"" (search-input-file inputs "bin/lsof")))))))))
+      (inputs (list lsof python-wrapper))
+      (propagated-inputs (list python-jedi))
+      (home-page "https://github.com/statmobile/pydoc")
+      (synopsis "Navigate Python documentation in Emacs")
+      (description "This package provides an Emacs mode for navigating
+Python documentation with @code{pydoc} in Emacs.")
+      (license license:gpl3+))))
+
 (define-public emacs-python-black
   (package
     (name "emacs-python-black")
-- 
2.38.1