[PATCH 0/6] Add Mesa agent based modeling platform

  • Open
  • quality assurance status badge
Details
3 participants
  • jlicht
  • Ludovic Courtès
  • Calvin Pritchard
Owner
unassigned
Submitted by
Calvin Pritchard
Severity
normal
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
(address . guix-patches@gnu.org)
20190506030507.5469-1-pritchard.calvin@gmail.com
This patch series is to add the python agent based modeling platform
Mesa. It is in Python 3 only. I've added Python 2 versions for poyo and
whichcraft since they worked without modification. The `arrow` package
Python 2. I could add that package as a conditional dependency but I'm
not sure how.

Calvin Pritchard (6):
gnu: Add python-arrow
gnu: Add python-whichcraft, python2-whichcraft
gnu: Add python-poyo, python2-poyo
gnu: Add python-jinja2-time
gnu: Add python-cookiecutter
gnu: Add python-mesa

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

--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
[PATCH 1/6] gnu: Add python-arrow
(address . guix-patches@gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506030507.5469-2-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-arrow). New variables.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b0d2b105ca..bdc6f408f0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2150,6 +2150,36 @@ JavaScript-like message boxes. Types of dialog boxes include:
")
(license license:bsd-3)))
+(define-public python-arrow
+ (package
+ (name "python-arrow")
+ (version "0.13.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "arrow" version))
+ (sha256
+ (base32
+ "12hbnrfwa4r9n7zpbpfvah6dh8blzb3w5f4zmhgq3dy02vqdjm3g"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-chai" ,python-chai)
+ ("python-pytz" ,python-pytz)
+ ("python-simplejson" ,python-simplejson)))
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)))
+ (home-page
+ "https://github.com/crsmithdev/arrow/")
+ (synopsis "Better dates and times for Python")
+ (description "Arrow is a Python library that offers a sensible,
+human-friendly approach to creating, manipulating, formatting and
+converting dates, times, and timestamps. It implements and updates
+the datetime type, plugging gaps in functionality, and provides an
+intelligent module API that supports many common creation scenarios.
+Simply put, it helps you work with dates and times with fewer imports
+and a lot less code.")
+ (license license:asl2.0)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
[PATCH 4/6] gnu: Add python-jinja2-time
(address . guix-patches@gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506030507.5469-5-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-jinja2-time). New variables.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 815e190d5f..3407803ca6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2228,6 +2228,28 @@ It can read a subset of yaml and is not capable of write yaml")
(define-public python2-poyo
(package-with-python2 python-poyo))
+(define-public python-jinja2-time
+ (package
+ (name "python-jinja2-time")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jinja2-time" version))
+ (sha256
+ (base32
+ "0h0dr7cfpjnjj8bgl2vk9063a53649pn37wnlkd8hxjy656slkni"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-arrow" ,python-arrow)
+ ("python-jinja2" ,python-jinja2)))
+ (home-page
+ "https://github.com/hackebrot/jinja2-time")
+ (synopsis "Jinja2 Extension for Dates and Times")
+ (description
+ "Jinja2 Extension for Dates and Times")
+ (license license:expat)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
[PATCH 2/6] gnu: Add python-whichcraft, python2-whichcraft
(address . guix-patches@gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506030507.5469-3-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-whichcraft, python2-whichcraft).
New variables.
---
gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bdc6f408f0..4cee74591d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2180,6 +2180,31 @@ Simply put, it helps you work with dates and times with fewer imports
and a lot less code.")
(license license:asl2.0)))
+(define-public python-whichcraft
+ (package
+ (name "python-whichcraft")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "whichcraft" version))
+ (sha256
+ (base32
+ "058qr17inlhp9354q1lr0qq31yhqzfd405djp1fzqzr33x9xvkgy"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page
+ "https://github.com/pydanny/whichcraft")
+ (synopsis
+ "Provides cross-platform cross-python shutil.which")
+ (description
+ "This package provides cross-platform cross-python shutil.which functionality.")
+ (license license:bsd-3)))
+
+(define-public python2-whichcraft
+ (package-with-python2 python-whichcraft))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
[PATCH 5/6] gnu: Add python-cookiecutter
(address . guix-patches@gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506030507.5469-6-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-cookiecutter). New variables.
---
gnu/packages/python-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3407803ca6..a801376c6d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2250,6 +2250,39 @@ It can read a subset of yaml and is not capable of write yaml")
"Jinja2 Extension for Dates and Times")
(license license:expat)))
+(define-public python-cookiecutter
+ (package
+ (name "python-cookiecutter")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cookiecutter" version))
+ (sha256
+ (base32
+ "0glsvaz8igi2wy1hsnhm9fkn6560vdvdixzvkq6dn20z3hpaa5hk"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-freezegun" ,python-freezegun)
+ ("python-pytest" ,python-pytest)))
+ (propagated-inputs
+ `(("python-binaryornot" ,python-binaryornot)
+ ("python-click" ,python-click)
+ ("python-future" ,python-future)
+ ("python-jinja2" ,python-jinja2)
+ ("python-jinja2-time" ,python-jinja2-time)
+ ("python-poyo" ,python-poyo)
+ ("python-requests" ,python-requests)
+ ("python-whichcraft" ,python-whichcraft)))
+ (home-page
+ "https://github.com/audreyr/cookiecutter")
+ (synopsis
+ "Command-line utility to create projects from templates")
+ (description
+ "A command-line utility that creates projects from project templates,
+e.g. creating a Python package project from a Python package project template.")
+ (license license:bsd-3)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
[PATCH 6/6] gnu: Add python-mesa
(address . guix-patches@gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506030507.5469-7-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-mesa). New variables.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a801376c6d..5eddf9cc2c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2283,6 +2283,36 @@ It can read a subset of yaml and is not capable of write yaml")
e.g. creating a Python package project from a Python package project template.")
(license license:bsd-3)))
+(define-public python-mesa
+ (package
+ (name "python-mesa")
+ (version "0.8.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Mesa" version))
+ (sha256
+ (base32
+ "0qn7gsv1ni5ccm6r6k02m94m4n6sy791yqk0h90x2ym09asvpf2b"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-cookiecutter" ,python-cookiecutter)
+ ("jupyter" ,jupyter)
+ ("python-networkx" ,python-networkx)
+ ("python-numpy" ,python-numpy)
+ ("python-pandas" ,python-pandas)
+ ("python-tornado" ,python-tornado)
+ ("python-tqdm" ,python-tqdm)))
+ (home-page "https://github.com/projectmesa/mesa")
+ (synopsis
+ "Agent-based modeling (ABM) in Python 3+")
+ (description
+ "Mesa is an agent-based modeling framework in Python. It contains core
+components to implement spatial models, schedule agents and visualize model
+runs")
+ (license license:asl2.0)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 05:05
[PATCH 3/6] gnu: Add python-poyo, python2-poyo
(address . guix-patches@gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506030507.5469-4-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-poyo, python2-poyo).
New variables.
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4cee74591d..815e190d5f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2205,6 +2205,29 @@ and a lot less code.")
(define-public python2-whichcraft
(package-with-python2 python-whichcraft))
+(define-public python-poyo
+ (package
+ (name "python-poyo")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "poyo" version))
+ (sha256
+ (base32
+ "07fdxlqgnnzb8r6lasvdfjcbd8sb9af0wla08rbfs40j349m8jn3"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/hackebrot/poyo")
+ (synopsis "YAML Parser for Python")
+ (description
+ "A YAML Parser for Python.
+
+It can read a subset of yaml and is not capable of write yaml")
+ (license license:expat)))
+
+(define-public python2-poyo
+ (package-with-python2 python-poyo))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 07:30
[PATCH 1/6] gnu: Add python-arrow
(address . 35598@debbugs.gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506053017.7255-1-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-arrow). New variables.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b0d2b105ca..bdc6f408f0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2150,6 +2150,36 @@ JavaScript-like message boxes. Types of dialog boxes include:
")
(license license:bsd-3)))
+(define-public python-arrow
+ (package
+ (name "python-arrow")
+ (version "0.13.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "arrow" version))
+ (sha256
+ (base32
+ "12hbnrfwa4r9n7zpbpfvah6dh8blzb3w5f4zmhgq3dy02vqdjm3g"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-chai" ,python-chai)
+ ("python-pytz" ,python-pytz)
+ ("python-simplejson" ,python-simplejson)))
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)))
+ (home-page
+ "https://github.com/crsmithdev/arrow/")
+ (synopsis "Better dates and times for Python")
+ (description "Arrow is a Python library that offers a sensible,
+human-friendly approach to creating, manipulating, formatting and
+converting dates, times, and timestamps. It implements and updates
+the datetime type, plugging gaps in functionality, and provides an
+intelligent module API that supports many common creation scenarios.
+Simply put, it helps you work with dates and times with fewer imports
+and a lot less code.")
+ (license license:asl2.0)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 07:30
[PATCH 2/6] gnu: Add python-whichcraft, python2-whichcraft
(address . 35598@debbugs.gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506053017.7255-2-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-whichcraft, python2-whichcraft).
New variables.
---
gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bdc6f408f0..4cee74591d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2180,6 +2180,31 @@ Simply put, it helps you work with dates and times with fewer imports
and a lot less code.")
(license license:asl2.0)))
+(define-public python-whichcraft
+ (package
+ (name "python-whichcraft")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "whichcraft" version))
+ (sha256
+ (base32
+ "058qr17inlhp9354q1lr0qq31yhqzfd405djp1fzqzr33x9xvkgy"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page
+ "https://github.com/pydanny/whichcraft")
+ (synopsis
+ "Provides cross-platform cross-python shutil.which")
+ (description
+ "This package provides cross-platform cross-python shutil.which functionality.")
+ (license license:bsd-3)))
+
+(define-public python2-whichcraft
+ (package-with-python2 python-whichcraft))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 07:30
[PATCH 3/6] gnu: Add python-poyo, python2-poyo
(address . 35598@debbugs.gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506053017.7255-3-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-poyo, python2-poyo).
New variables.
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4cee74591d..815e190d5f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2205,6 +2205,29 @@ and a lot less code.")
(define-public python2-whichcraft
(package-with-python2 python-whichcraft))
+(define-public python-poyo
+ (package
+ (name "python-poyo")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "poyo" version))
+ (sha256
+ (base32
+ "07fdxlqgnnzb8r6lasvdfjcbd8sb9af0wla08rbfs40j349m8jn3"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/hackebrot/poyo")
+ (synopsis "YAML Parser for Python")
+ (description
+ "A YAML Parser for Python.
+
+It can read a subset of yaml and is not capable of write yaml")
+ (license license:expat)))
+
+(define-public python2-poyo
+ (package-with-python2 python-poyo))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 07:30
[PATCH 4/6] gnu: Add python-jinja2-time
(address . 35598@debbugs.gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506053017.7255-4-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-jinja2-time). New variables.
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 815e190d5f..3407803ca6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2228,6 +2228,28 @@ It can read a subset of yaml and is not capable of write yaml")
(define-public python2-poyo
(package-with-python2 python-poyo))
+(define-public python-jinja2-time
+ (package
+ (name "python-jinja2-time")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jinja2-time" version))
+ (sha256
+ (base32
+ "0h0dr7cfpjnjj8bgl2vk9063a53649pn37wnlkd8hxjy656slkni"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-arrow" ,python-arrow)
+ ("python-jinja2" ,python-jinja2)))
+ (home-page
+ "https://github.com/hackebrot/jinja2-time")
+ (synopsis "Jinja2 Extension for Dates and Times")
+ (description
+ "Jinja2 Extension for Dates and Times")
+ (license license:expat)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 07:30
[PATCH 5/6] gnu: Add python-cookiecutter
(address . 35598@debbugs.gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506053017.7255-5-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-cookiecutter). New variables.
---
gnu/packages/python-xyz.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3407803ca6..a801376c6d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2250,6 +2250,39 @@ It can read a subset of yaml and is not capable of write yaml")
"Jinja2 Extension for Dates and Times")
(license license:expat)))
+(define-public python-cookiecutter
+ (package
+ (name "python-cookiecutter")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cookiecutter" version))
+ (sha256
+ (base32
+ "0glsvaz8igi2wy1hsnhm9fkn6560vdvdixzvkq6dn20z3hpaa5hk"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-freezegun" ,python-freezegun)
+ ("python-pytest" ,python-pytest)))
+ (propagated-inputs
+ `(("python-binaryornot" ,python-binaryornot)
+ ("python-click" ,python-click)
+ ("python-future" ,python-future)
+ ("python-jinja2" ,python-jinja2)
+ ("python-jinja2-time" ,python-jinja2-time)
+ ("python-poyo" ,python-poyo)
+ ("python-requests" ,python-requests)
+ ("python-whichcraft" ,python-whichcraft)))
+ (home-page
+ "https://github.com/audreyr/cookiecutter")
+ (synopsis
+ "Command-line utility to create projects from templates")
+ (description
+ "A command-line utility that creates projects from project templates,
+e.g. creating a Python package project from a Python package project template.")
+ (license license:bsd-3)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
C
C
Calvin Pritchard wrote on 6 May 2019 07:30
[PATCH 6/6] gnu: Add python-mesa
(address . 35598@debbugs.gnu.org)(name . Calvin Pritchard)(address . calvin.pritchard@asu.edu)
20190506053017.7255-6-pritchard.calvin@gmail.com
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-mesa). New variables.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a801376c6d..5eddf9cc2c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2283,6 +2283,36 @@ It can read a subset of yaml and is not capable of write yaml")
e.g. creating a Python package project from a Python package project template.")
(license license:bsd-3)))
+(define-public python-mesa
+ (package
+ (name "python-mesa")
+ (version "0.8.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Mesa" version))
+ (sha256
+ (base32
+ "0qn7gsv1ni5ccm6r6k02m94m4n6sy791yqk0h90x2ym09asvpf2b"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-cookiecutter" ,python-cookiecutter)
+ ("jupyter" ,jupyter)
+ ("python-networkx" ,python-networkx)
+ ("python-numpy" ,python-numpy)
+ ("python-pandas" ,python-pandas)
+ ("python-tornado" ,python-tornado)
+ ("python-tqdm" ,python-tqdm)))
+ (home-page "https://github.com/projectmesa/mesa")
+ (synopsis
+ "Agent-based modeling (ABM) in Python 3+")
+ (description
+ "Mesa is an agent-based modeling framework in Python. It contains core
+components to implement spatial models, schedule agents and visualize model
+runs")
+ (license license:asl2.0)))
+
(define-public python-pympler
(package
(name "python-pympler")
--
2.17.1
L
L
Ludovic Courtès wrote on 12 May 2019 23:58
Re: [bug#35598] [PATCH 0/6] Add Mesa agent based modeling platform
(name . Calvin Pritchard)(address . pritchard.calvin@gmail.com)(address . 35598@debbugs.gnu.org)
87d0kns5bi.fsf@gnu.org
Hi Calvin,

Thanks for the patches!

Calvin Pritchard <pritchard.calvin@gmail.com> skribis:

Toggle quote (7 lines)
> This patch series is to add the python agent based modeling platform
> Mesa. It is in Python 3 only. I've added Python 2 versions for poyo and
> whichcraft since they worked without modification. The `arrow` package
> depends on https://github.com/jaraco/backports.functools_lru_cache for
> Python 2. I could add that package as a conditional dependency but I'm
> not sure how.

Actually, I would invite you to not provide the Python 2.x variants of
these packages: we’re still providing packages for 2.x, but slowly
reducing their number.

Apart from that, the patches LGTM, except for a couple of synopses and
descriptions that could be improved a bit, to at least make full
sentences etc. See

Could you take a look and send updated patches?

Thank you!

Ludo’.
J
J
jlicht wrote on 28 May 2023 23:21
[PATCH v2] gnu: Add python-mesa.
(address . 35598@debbugs.gnu.org)
ba771d68c45543fbd8c65e9bba7a012f85bd2fc2.1685308811.git.jlicht@fsfe.org
From: Calvin Pritchard <calvin.pritchard@asu.edu>

* gnu/packages/python-xyz.scm (python-mesa). New variable.

Co-authored-by: Jelle Licht <jlicht@fsfe.net>

---

Changes in v2:
- Drop all dependency patches, as those packages now exist
- Use pyproject-build-system
- Reworked to modern packaging standards
- Update mesage package version to 1.2.1.

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

Toggle diff (78 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f7e3f6f538..be89df2fa1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2305,6 +2305,69 @@ (define-public python-license-expression
conventions and aliases in the same expression.")
(license license:gpl2+)))
+(define-public python-mesa
+ (package
+ (name "python-mesa")
+ (version "1.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "Mesa" version))
+ (sha256
+ (base32
+ "01504d2bgfwsg92942k34fi7adq5n9r1fw4sn5kx0sm70jwq1628"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:modules '((guix build pyproject-build-system)
+ (guix build utils)
+ (ice-9 match)
+ (srfi srfi-1))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-cookiecutter
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "mesa/main.py"
+ (("\"cookiecutter\"")
+ (string-append "\""
+ (search-input-file inputs "/bin/cookiecutter")
+ "\"")))))
+ (add-after 'build 'set-HOME
+ ;; Some tests write to $HOME.
+ (lambda _ (setenv "HOME" "/tmp")))
+ (replace 'compile-bytecode
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((site-dir (site-packages inputs outputs))
+ (python (assoc-ref inputs "python"))
+ (major-minor (map string->number
+ (take (string-split (python-version python)
+ #\.)
+ 2)))
+ (<3.7? (match major-minor
+ ((major minor)
+ (or (< major 3)
+ (and (= major 3)
+ (< minor 7)))))))
+ (unless <3.7?
+ ;; The cookiecutter-mesa directory contains project templates that
+ ;; should not be compiled.
+ (invoke "python" "-m" "compileall"
+ "-x" "cookiecutter-mesa"
+ "--invalidation-mode=unchecked-hash" site-dir))))))))
+ (propagated-inputs (list python-click
+ python-networkx
+ python-numpy
+ python-pandas
+ python-tornado
+ python-tqdm))
+ (inputs (list python-cookiecutter))
+ (native-inputs (list python-coverage python-pytest python-pytest-cov))
+ (home-page "https://github.com/projectmesa/mesa")
+ (synopsis "Agent-based modeling (ABM) in Python")
+ (description "Mesa is an agent-based modeling framework in Python. It contains
+core components to implement spatial models, schedule agents and visualize model
+runs.")
+ (license license:asl2.0)))
+
(define-public python-wand
(package
(name "python-wand")

base-commit: 9845e408e533f5834a13f294ca1ddc1dc7e248fd
--
2.40.1
?