GNU bug report logs - #50836
[PATCH 0/5] Python logic programming packages

Previous Next

Package: guix-patches;

Reported by: Ryan Prior <rprior <at> protonmail.com>

Date: Mon, 27 Sep 2021 02:19:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50836 in the body.
You can then email your comments to 50836 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 02:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ryan Prior <rprior <at> protonmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 27 Sep 2021 02:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ryan Prior <rprior <at> protonmail.com>
To: guix-patches <at> gnu.org
Subject: [PATCH 0/5] Python logic programming packages
Date: Mon, 27 Sep 2021 02:17:56 +0000
Hi Guix! Here's a series of patches for software I use for logic programming in Python.

Ryan Prior (5):
  gnu: Add python-multipledispatch.
  gnu: Add python-logical-unification.
  gnu: Add python-cons.
  gnu: Add python-etuples.
  gnu: Add python-minikanren.

 gnu/packages/python-xyz.scm | 139 ++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

--
2.33.0






Information forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 02:21:02 GMT) Full text and rfc822 format available.

Message #8 received at 50836 <at> debbugs.gnu.org (full text, mbox):

From: Ryan Prior <rprior <at> protonmail.com>
To: 50836 <at> debbugs.gnu.org
Subject: [PATCH 1/5] gnu: Add python-multipledispatch.
Date: Mon, 27 Sep 2021 02:20:14 +0000
* gnu/packages/python-xyz.scm (python-multipledispatch): New variable.
---
 gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a34c444a87..c833c95b5a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26584,6 +26584,26 @@ objects in the combined source, and how they define or use each other.  The
 graph can be output for rendering by GraphViz or yEd.")
     (license license:gpl2)))

+(define-public python-multipledispatch
+  (package
+    (name "python-multipledispatch")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "multipledispatch" version))
+       (sha256
+        (base32
+         "1slblghfjg9fdi9zpd7gmrkvfbv20nrdgnrymcnbky8bzm8i9ax7"))))
+    (build-system python-build-system)
+    (propagated-inputs `(("six" ,python-six)))
+    (home-page
+     "http://github.com/mrocklin/multipledispatch/")
+    (synopsis "Multiple dispatch for Python based on pattern matching")
+    (description "This library provides an efficient mechanism for overloading
+function implementations based on the types of the arguments.")
+    (license license:bsd-3)))
+
 (define-public date2name
   (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
         (revision "1"))
--
2.33.0






Information forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 02:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 50836 <at> debbugs.gnu.org (full text, mbox):

From: Ryan Prior <rprior <at> protonmail.com>
To: 50836 <at> debbugs.gnu.org
Subject: [PATCH 2/5] gnu: Add python-logical-unification.
Date: Mon, 27 Sep 2021 02:20:17 +0000
gnu/packages/python-xyz.scm (python-logical-unification): New variable.
---
 gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c833c95b5a..bc5ab67e6b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26604,6 +26604,28 @@ graph can be output for rendering by GraphViz or yEd.")
 function implementations based on the types of the arguments.")
     (license license:bsd-3)))

+(define-public python-logical-unification
+  (package
+    (name "python-logical-unification")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "logical-unification" version))
+       (sha256
+        (base32
+         "0j57953hi7kg2rl0163vzjzsvzdyjimnklhx6idf5vaqqf1d3p1j"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("multipledispatch" ,python-multipledispatch)
+       ("toolz" ,python-toolz)))
+    (home-page
+     "http://github.com/pythological/unification/")
+    (synopsis "Logical unification in Python for solving symbolic expressions")
+    (description "This library provides algorithms and data types for solving
+symbolic expressions in pure Python using the technique of logical unification.")
+    (license license:bsd-3)))
+
 (define-public date2name
   (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
         (revision "1"))
--
2.33.0






Information forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 02:21:03 GMT) Full text and rfc822 format available.

Message #14 received at 50836 <at> debbugs.gnu.org (full text, mbox):

From: Ryan Prior <rprior <at> protonmail.com>
To: 50836 <at> debbugs.gnu.org
Subject: [PATCH 4/5] gnu: Add python-etuples.
Date: Mon, 27 Sep 2021 02:20:22 +0000
gnu/packages/python-xyz.scm (python-etuples): New variable.
---
 gnu/packages/python-xyz.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1f6388d2bc..0b002c42dc 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26653,6 +26653,30 @@ symbolic expressions in pure Python using the technique of logical unification."
 cons cells in Python.")
     (license license:lgpl3+)))

+(define-public python-etuples
+  (package
+    (name "python-etuples")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "etuples" version))
+       (sha256
+        (base32
+         "0jhfyp177v37rl0i7wqfx7q6s5qkz027hl283d1x8d0vm3w0zqc8"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-cons" ,python-cons)
+       ("python-multipledispatch"
+        ,python-multipledispatch)))
+    (home-page
+     "http://github.com/pythological/etuples")
+    (synopsis
+     "S-expressions in Python")
+    (description
+     "This library implements eval'able S-expression in Python using tuple-like objects.")
+    (license license:asl2.0)))
+
 (define-public date2name
   (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
         (revision "1"))
--
2.33.0






Information forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 02:21:03 GMT) Full text and rfc822 format available.

Message #17 received at 50836 <at> debbugs.gnu.org (full text, mbox):

From: Ryan Prior <rprior <at> protonmail.com>
To: 50836 <at> debbugs.gnu.org
Subject: [PATCH 5/5] gnu: Add python-minikanren.
Date: Mon, 27 Sep 2021 02:20:24 +0000
gnu/packages/python-xyz.scm (python-minikanren): New variable.
---
 gnu/packages/python-xyz.scm | 46 +++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0b002c42dc..4437de6374 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26677,6 +26677,52 @@ cons cells in Python.")
      "This library implements eval'able S-expression in Python using tuple-like objects.")
     (license license:asl2.0)))

+(define-public python-minikanren
+  (package
+    (name "python-minikanren")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pythological/kanren")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0g7wfj5hxalwz7k1301nsjqhjpzsif1bj6wjm2x2kavlm2ypv9jc"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "python" "-m" "pytest" "-v" "tests/" "kanren/"))
+                      #t)))))
+    (native-inputs
+     `(("python-coveralls" ,python-coveralls)
+       ("python-pydocstyle" ,python-pydocstyle)
+       ("python-pytest <at> 6.2.4" ,python-pytest)
+       ("python-pytest-cov <at> 2.8.1" ,python-pytest-cov)
+       ("python-pylint <at> 2.5.3" ,python-pylint)
+       ("python-black <at> 20.8b1" ,python-black)
+       ("python-sympy <at> 1.7.1" ,python-sympy)
+       ("python-versioneer <at> 0.19" ,python-versioneer)
+       ("python-coverage <at> 5.2.1" ,python-coverage)
+       ("python-pre-commit <at> 2.10.0" ,python-pre-commit)))
+    (propagated-inputs
+     `(("toolz <at> 0.11.1" ,python-toolz)
+       ("cons" ,python-cons)
+       ("multipledispatch" ,python-multipledispatch)
+       ("etuples" ,python-etuples)
+       ("logical-unification" ,python-logical-unification)))
+    (home-page "https://github.com/pythological/kanren")
+    (synopsis "Relational logic programming in pure Python")
+    (description
+     "The minikanren library provides an algorithmic core for computer algebra
+systems in Python.")
+    (license license:bsd-3)))
+
+
 (define-public date2name
   (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
         (revision "1"))
--
2.33.0






Information forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 02:21:04 GMT) Full text and rfc822 format available.

Message #20 received at 50836 <at> debbugs.gnu.org (full text, mbox):

From: Ryan Prior <rprior <at> protonmail.com>
To: 50836 <at> debbugs.gnu.org
Subject: [PATCH 3/5] gnu: Add python-cons.
Date: Mon, 27 Sep 2021 02:20:19 +0000
gnu/packages/python-xyz.scm (python-cons): New variable.
---
 gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bc5ab67e6b..1f6388d2bc 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26626,6 +26626,33 @@ function implementations based on the types of the arguments.")
 symbolic expressions in pure Python using the technique of logical unification.")
     (license license:bsd-3)))

+(define-public python-cons
+  (package
+    (name "python-cons")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "cons" version))
+       (sha256
+        (base32
+         "0w9giq196wps7mbm47c4shdzs5yvwvqajqzkim2p92i51sm5qgvm"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("pytest <at> 6.2.4" ,python-pytest-6)
+       ("toml <at> 0.10.2" ,python-toml)))
+    (propagated-inputs
+     `(("python-logical-unification"
+        ,python-logical-unification)))
+    (home-page
+     "https://github.com/pythological/python-cons")
+    (synopsis
+     "Cons cell data structures and related algorithms for Python")
+    (description
+     "This library implements algorithms and data structures for Lisp-style
+cons cells in Python.")
+    (license license:lgpl3+)))
+
 (define-public date2name
   (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
         (revision "1"))
--
2.33.0






Information forwarded to guix-patches <at> gnu.org:
bug#50836; Package guix-patches. (Mon, 27 Sep 2021 10:29:02 GMT) Full text and rfc822 format available.

Message #23 received at 50836 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Ryan Prior <rprior <at> protonmail.com>, 50836 <at> debbugs.gnu.org
Subject: Re: [bug#50836] [PATCH 1/5] gnu: Add python-multipledispatch.
Date: Mon, 27 Sep 2021 12:28:23 +0200
[Message part 1 (text/plain, inline)]
Ryan Prior via Guix-patches via schreef op ma 27-09-2021 om 02:20 [+0000]:
> * gnu/packages/python-xyz.scm (python-multipledispatch): New variable.
> ---
>  gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
> index a34c444a87..c833c95b5a 100644
> --- a/gnu/packages/python-xyz.scm
> +++ b/gnu/packages/python-xyz.scm
> @@ -26584,6 +26584,26 @@ objects in the combined source, and how they define or use each other.  The
>  graph can be output for rendering by GraphViz or yEd.")
>      (license license:gpl2)))
> 
> +(define-public python-multipledispatch
> +  (package
> +    (name "python-multipledispatch")
> +    (version "0.6.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (pypi-uri "multipledispatch" version))
> +       (sha256
> +        (base32
> +         "1slblghfjg9fdi9zpd7gmrkvfbv20nrdgnrymcnbky8bzm8i9ax7"))))
> +    (build-system python-build-system)
> +    (propagated-inputs `(("six" ,python-six)))

The convention is to use the package name of the input package as input
label ("python-six" instead of "six" in this case).  This is important for
the "guix style" in <https://issues.guix.gnu.org/49169>, which, when it will
be in master, allows writing this package definition as

(define-public python-multipledispatch
  (package
    (name "python-multipledispatch")
    ...
    (propagated-inputs (list python-six))
    ...))

(The long-term goal appears to be to remove input labels completely.)

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Mon, 15 Nov 2021 13:43:02 GMT) Full text and rfc822 format available.

Notification sent to Ryan Prior <rprior <at> protonmail.com>:
bug acknowledged by developer. (Mon, 15 Nov 2021 13:43:02 GMT) Full text and rfc822 format available.

Message #28 received at 50836-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Ryan Prior <rprior <at> protonmail.com>
Cc: 50836-done <at> debbugs.gnu.org
Subject: Re: bug#50836: [PATCH 0/5] Python logic programming packages
Date: Mon, 15 Nov 2021 14:42:39 +0100
Hi,

Ryan Prior <rprior <at> protonmail.com> skribis:

>   gnu: Add python-multipledispatch.
>   gnu: Add python-logical-unification.
>   gnu: Add python-cons.
>   gnu: Add python-etuples.
>   gnu: Add python-minikanren.

I adjusted input labels as Maxime suggested, addressed minor issues
reported by ‘guix lint’, and committed the whole thing.

I didn’t know miniKanren (and ‘cons’ :-)) had been ported to Python,
sweet!

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 14 Dec 2021 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 95 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.