diff mbox series

[bug#63906] gnu: Add python-tree-sitter.

Message ID bd1217a8b3e5184d568ab99980af3fb46065ba51.1685966075.git.ngraves@ngraves.fr
State New
Headers show
Series [bug#63906] gnu: Add python-tree-sitter. | expand

Commit Message

Nicolas Graves June 5, 2023, 11:54 a.m. UTC
* gnu/packages/tree-sitter.scm (python-tree-sitter): New variable.
---
 gnu/packages/tree-sitter.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)


base-commit: eed55a6544d5bda2245ec853e5fa4b28e1865bea
prerequisite-patch-id: a057b35ab55298bad50caab186b3e692a25230e1
prerequisite-patch-id: fb9054f780e6f97b92f00fdbe56058d1188ccf0a
prerequisite-patch-id: ca2f2591980b80c5cf27846e59e323bdc5a06b00
prerequisite-patch-id: ae5ad13b181ebb3c31d529af50622e3b78641442
prerequisite-patch-id: 34ed6acb0a1e5f79b5f6d18a6d4ef70cd97bf7ad
prerequisite-patch-id: 10d52b209b6e9c771050eef67ce566e79ab55c49
prerequisite-patch-id: e78e2a6daf59564caf5d2affe04ea7dde07f76c6
prerequisite-patch-id: 6aad4df7b83bfd5c2da38d9c2f80fba749f607b5
prerequisite-patch-id: da6a2d63ebb0ba1abb0b7c569d353724d900f95f
prerequisite-patch-id: 6279cff75e76e262f6ec82518db1fdf4c1810303
prerequisite-patch-id: 44453fcf2f2c38212a47d45d43ddcfa98167fabe
prerequisite-patch-id: 641eae2fa3842045ebe6072ad78214002f818221
prerequisite-patch-id: c19de9ee8c57210cbffc79945e69a858639f39bf
prerequisite-patch-id: 9833a747398a641803e203f8293382f55ad24ed1
prerequisite-patch-id: 94d5340918e3626726b6d32d93bf47425751898f
prerequisite-patch-id: e18164416e2c070b0b71f770c90d4c04af2635c1
prerequisite-patch-id: 31e98ea035053a965e87ad0164030cf909922d9e
prerequisite-patch-id: a1cf1f5c4a0ff2804fac986a69ffbc0328300afe
prerequisite-patch-id: 2a54e276f79fb57113a0be11e1ea2c07fdc2727d
prerequisite-patch-id: a463de1ba17ecb39588dfbd46c3bc5f9e0fb1b1c
prerequisite-patch-id: 3188de66dfc4bcb71f90601822428701528f4a98
prerequisite-patch-id: 6c93f771a1eca0747fd92a770fe750e2f15d8e52
prerequisite-patch-id: 12b76e9c2751da73ed64c9489b15f74ff17568cf
prerequisite-patch-id: eb618ab7b10483d917c308a38792af98baa517e2
prerequisite-patch-id: a471a4b7839bfb0ee9a3fd53ed962d729d38bd94
prerequisite-patch-id: 5e58202cc87a257c78033dafa62ffae4383e3718
prerequisite-patch-id: da6f4e25ed77113effc398694478bb392c4306ac
prerequisite-patch-id: febce01ba95d8c8f22e2088ab605ffd6959036ba
prerequisite-patch-id: caf73ad8377b81dd6f8e328bcaae935680df30ce
prerequisite-patch-id: 779a2f8d2ffa699e3c0029fde8dea22f5cce15b0
prerequisite-patch-id: a2dfb2fba1e1a3c8e270823022b6f462d27f17c8
prerequisite-patch-id: 843773f53ca319821185f9f9bc43ad905f081ee7
prerequisite-patch-id: cd7f69695aa47b7e1b1160841fe842a3acd160e7

Comments

Jean Pierre De Jesus DIAZ June 5, 2023, 1:51 p.m. UTC | #1
Hello Nicholas,

I took a look at the package and it bundles the tree-sitter code and
compiles it from source code.  As tree-sitter is already packaged in
GNU Guix the setup.py script could be patched to instead build the
bindings and link with the system tree-sitter.

So the `origin' should contain a `snippet' to remove the bundled
code and on the build phases `setup.py' (and any other files) should
be patched to use the system tree-sitter.

Cheers,

—
Jean-Pierre De Jesus DIAZ
diff mbox series

Patch

diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm
index 853507be2d..2887fa823b 100644
--- a/gnu/packages/tree-sitter.scm
+++ b/gnu/packages/tree-sitter.scm
@@ -4,6 +4,7 @@ 
 ;;; Copyright © 2022 muradm <mail@muradm.net>
 ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
 ;;; Copyright © 2023 Andrew Tropin <andrew@trop.in>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,12 +30,32 @@  (define-module (gnu packages tree-sitter)
   #:use-module (gnu packages node)
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system pyproject)
+  #:use-module ((guix build-system python) #:select (pypi-uri))
   #:use-module (guix build-system tree-sitter)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
+  #:use-module (guix download)
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public python-tree-sitter
+  (package
+    (name "python-tree-sitter")
+    (version "0.20.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "tree_sitter" version))
+              (sha256
+               (base32
+                "03f6xqpnjh4g28d9g219w9n4l07bap91ws2xzfy4jrjxahn0hgz9"))))
+    (build-system pyproject-build-system)
+    (home-page "https://github.com/tree-sitter/py-tree-sitter")
+    (synopsis "Python bindings to the Tree-sitter parsing library")
+    (description "This package provides Python bindings to the
+Tree-sitter parsing library.")
+    (license license:expat)))
+
 (define-public tree-sitter
   (package
     (name "tree-sitter")