unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* bug#26613: Add pootle
@ 2017-04-22 21:13 Julien Lepiller
  2017-04-23  0:33 ` Leo Famulari
  0 siblings, 1 reply; 4+ messages in thread
From: Julien Lepiller @ 2017-04-22 21:13 UTC (permalink / raw)
  To: 26613

[-- Attachment #1: Type: text/plain, Size: 185 bytes --]

Hi,

here are patches that add pootle, a translation server written in
django. Some patches modify packages that have several dependents, so
it should probably go to core-updates first.

[-- Attachment #2: 0001-gnu-python-pytest-runner-Update-to-2.11.1.patch --]
[-- Type: text/x-patch, Size: 1109 bytes --]

From f57ed854a7a0a802934f76ff2ff622c907277e98 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 12:14:06 +0200
Subject: [PATCH 01/34] gnu: python-pytest-runner: Update to 2.11.1.

* gnu/packages/python.scm (python-pytest-runner)
(python2-pytest-runner): Update to 2.11.1.
---
 gnu/packages/python.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e51405bd9..142de0984 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1879,14 +1879,14 @@ supports coverage of subprocesses.")
 (define-public python-pytest-runner
   (package
     (name "python-pytest-runner")
-    (version "2.6.2")
+    (version "2.11.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-runner" version))
        (sha256
         (base32
-         "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7"))))
+         "1cw978kqqcq916b9gfns1qjqvg33c5ail5jhw9054dsynkm32flq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.12.2


[-- Attachment #3: 0002-gnu-Add-python-pytest-warnings.patch --]
[-- Type: text/x-patch, Size: 1491 bytes --]

From ccabbd285e637cdb32fc35afcb51fd8d4272aac5 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:20:09 +0200
Subject: [PATCH 02/34] gnu: Add python-pytest-warnings.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 142de0984..9a38fbafd 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -13999,3 +13999,26 @@ exception message with a traceback that points to the culprit.")
 
 (define-public python2-fudge
   (package-with-python2 python-fudge))
+
+(define-public python-pytest-warnings
+  (package
+    (name "python-pytest-warnings")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-warnings" version))
+       (sha256
+        (base32
+         "0gf2dpahpl5igb7jh1sr9acj3z3gp7zahqdqb69nk6wx01c8kc1g"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("pytest" ,python-pytest-3.0)))
+    (home-page "https://github.com/fschulze/pytest-warnings")
+    (synopsis "Pytest plugin to list Python warnings in pytest report")
+    (description
+     "Pytest plugin to list Python warnings in pytest report.")
+    (license license:expat)))
+
+(define-public python2-pytest-warnings
+  (package-with-python2 python-pytest-warnings))
-- 
2.12.2


[-- Attachment #4: 0003-gnu-Add-python-pytest-catchlog.patch --]
[-- Type: text/x-patch, Size: 1566 bytes --]

From 27b9b1a020841c80fbf39bc81b7c665a462d0343 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 22:14:02 +0200
Subject: [PATCH 03/34] gnu: Add python-pytest-catchlog.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9a38fbafd..ef6c2ac5f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14022,3 +14022,28 @@ exception message with a traceback that points to the culprit.")
 
 (define-public python2-pytest-warnings
   (package-with-python2 python-pytest-warnings))
+
+(define-public python-pytest-catchlog
+  (package
+    (name "python-pytest-catchlog")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-catchlog" version ".zip"))
+       (sha256
+        (base32
+         "1w7wxh27sbqwm4jgwrjr9c2gy384aca5jzw9c0wzhl0pmk2mvqab"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (propagated-inputs
+     `(("pytest" ,python-pytest-3.0)))
+    (home-page "https://github.com/fschulze/pytest-warnings")
+    (synopsis "Pytest plugin to catch log messages")
+    (description
+     "Pytest plugin to catch log messages. This is a fork of pytest-capturelog.")
+    (license license:expat)))
+
+(define-public python2-pytest-catchlog
+  (package-with-python2 python-pytest-catchlog))
-- 
2.12.2


[-- Attachment #5: 0004-gnu-Add-python-utils.patch --]
[-- Type: text/x-patch, Size: 1603 bytes --]

From f676c9d80e49d12eedd53a5fe65fcc31c9823863 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 12:31:55 +0200
Subject: [PATCH 04/34] gnu: Add python-utils.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index ef6c2ac5f..9a787a3fc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14047,3 +14047,28 @@ exception message with a traceback that points to the culprit.")
 
 (define-public python2-pytest-catchlog
   (package-with-python2 python-pytest-catchlog))
+
+(define-public python-utils
+  (package
+    (name "python-utils")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "python-utils" version))
+              (sha256
+               (base32
+                "1zvrc1rc06n89pycg969pcy30bff4sqzhff365sxh629ybnl8pwq"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("pytest-runner" ,python-pytest-runner)
+       ("pytest" ,python-pytest)
+       ("six" ,python-six)))
+    (home-page "https://github.com/WoLpH/python-utils")
+    (synopsis "Convenient utilities not included with the standard Python install")
+    (description
+      "Python Utils is a collection of small Python functions and classes which
+make common patterns shorter and easier.")
+    (license license:bsd-2)))
+
+(define-public python2-utils
+  (package-with-python2 python-utils))
-- 
2.12.2


[-- Attachment #6: 0005-gnu-Add-python-webassets.patch --]
[-- Type: text/x-patch, Size: 1547 bytes --]

From 6d81f391fa211aef73f794dbce717c90b9d7134a Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:19:25 +0200
Subject: [PATCH 05/34] gnu: Add python-webassets.

* gnu/packages/python.scm (python-webassets, python2-webassets): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9a787a3fc..df936db9f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14072,3 +14072,27 @@ make common patterns shorter and easier.")
 
 (define-public python2-utils
   (package-with-python2 python-utils))
+
+(define-public python-webassets
+  (package
+    (name "python-webassets")
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "webassets" version))
+       (sha256
+        (base32
+         "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-jinja2" ,python-jinja2)
+       ("python-mock" ,python-mock)
+       ("python-nose" ,python-nose)
+       ("python-pytest" ,python-pytest)))
+    (home-page "http://github.com/miracle2k/webassets")
+    (synopsis "Media asset management")
+    (description "Merges, minifies and compresses Javascript and CSS files,
+supporting a variety of different filters, including YUI, jsmin, jspacker or
+CSS tidy.  Also supports URL rewriting in CSS files.")
+    (license license:bsd-2)))
-- 
2.12.2


[-- Attachment #7: 0006-gnu-Add-python-sphinx-me.patch --]
[-- Type: text/x-patch, Size: 1621 bytes --]

From 7c0db188993be6bfacfbbed49553f13ae9231863 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:22:46 +0200
Subject: [PATCH 06/34] gnu: Add python-sphinx-me.

* gnu/packages/python.scm (python-sphinx-me, python2-sphinx-me): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index df936db9f..4ea3fd890 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14096,3 +14096,27 @@ make common patterns shorter and easier.")
 supporting a variety of different filters, including YUI, jsmin, jspacker or
 CSS tidy.  Also supports URL rewriting in CSS files.")
     (license license:bsd-2)))
+
+(define-public python-sphinx-me
+  (package
+    (name "python-sphinx-me")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sphinx-me" version))
+       (sha256
+        (base32
+         "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/stephenmcd/sphinx-me")
+    (synopsis "Create a Sphinx documentation shell")
+    (description
+      "Create a Sphinx documentation shell for your project and include the
+README file as the documentation index.  It handles extracting the required
+meta data such as the project name, author and version from your project for
+use in your Sphinx docs.")
+    (license license:bsd-2)))
+
+(define-public python2-sphinx-me
+  (package-with-python2 python-sphinx-me))
-- 
2.12.2


[-- Attachment #8: 0007-gnu-python-rq-Update-to-0.7.1.patch --]
[-- Type: text/x-patch, Size: 1188 bytes --]

From 1cbd1c67de3593cad4be6e083866776cf684bbf9 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:25:01 +0200
Subject: [PATCH 07/34] gnu: python-rq: Update to 0.7.1.

* gnu/packages/python.scm (python-rq, python2-rq): Update to 0.7.1.
---
 gnu/packages/python.scm | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4ea3fd890..ec3c88b28 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3375,15 +3375,13 @@ mining and data analysis.")
 (define-public python-rq
   (package
     (name "python-rq")
-    (version "0.5.2")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://pypi.python.org/packages/source/r/rq/rq-"
-             version ".tar.gz"))
+       (uri (pypi-uri "rq" version))
        (sha256
-        (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix"))))
+        (base32 "0gaq5pnh0zy46r8jvygi0ifbvz3pq6i7xla78ijcgjw0x77qzsdh"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-click" ,python-click)
-- 
2.12.2


[-- Attachment #9: 0008-gnu-Add-python-cssmin.patch --]
[-- Type: text/x-patch, Size: 1304 bytes --]

From f11d88c7b52d5bd7751a25f558a48ee9f16bce44 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:27:33 +0200
Subject: [PATCH 08/34] gnu: Add python-cssmin.

* gnu/packages/python.scm (python-cssmin, python2-cssmin): New variables.
---
 gnu/packages/python.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index ec3c88b28..cd5ed1775 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14118,3 +14118,23 @@ use in your Sphinx docs.")
 
 (define-public python2-sphinx-me
   (package-with-python2 python-sphinx-me))
+
+(define-public python-cssmin
+  (package
+    (name "python-cssmin")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "cssmin" version))
+        (sha256
+         (base32
+          "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/zacharyvoase/cssmin")
+    (synopsis "Python port of the YUI CSS Compressor")
+    (description "Python port of the YUI CSS Compressor.")
+    (license (list license:expat license:bsd-3))))
+
+(define-public python2-cssmin
+  (package-with-python2 python-cssmin))
-- 
2.12.2


[-- Attachment #10: 0009-gnu-Add-python-diff-match-patch.patch --]
[-- Type: text/x-patch, Size: 1440 bytes --]

From cf07ab19ebcffb9a9aec0fa8274dd15897b391c4 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:34:24 +0200
Subject: [PATCH 09/34] gnu: Add python-diff-match-patch.

* gnu/packages/python.scm (python-diff-match-patch, python2-diff-match-patch):
New variables.
---
 gnu/packages/python.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index cd5ed1775..39ef0f199 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14138,3 +14138,24 @@ use in your Sphinx docs.")
 
 (define-public python2-cssmin
   (package-with-python2 python-cssmin))
+
+(define-public python-diff-match-patch
+  (package
+    (name "python-diff-match-patch")
+    (version "20121119")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "diff-match-patch" version))
+        (sha256
+         (base32
+          "0k1f3v8nbidcmmrk65m7h8v41jqi37653za9fcs96y7jzc8mdflx"))))
+    (build-system python-build-system)
+    (home-page "https://code.google.com/p/google-diff-match-patch")
+    (synopsis "Synchronize plain text")
+    (description "Diff Match and Patch libraries offer robust algorithms to
+perform the operations required for synchronizing plain text.")
+    (license license:asl2.0)))
+
+(define-public python2-diff-match-patch
+  (package-with-python2 python-diff-match-patch))
-- 
2.12.2


[-- Attachment #11: 0010-gnu-Add-python-dirsync.patch --]
[-- Type: text/x-patch, Size: 1465 bytes --]

From 7720dacd65cda74bb600e097ed58f748aee00708 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:39:13 +0200
Subject: [PATCH 10/34] gnu: Add python-dirsync.

* gnu/packages/python.scm (python-dirsync, python2-dirsync): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 39ef0f199..7c478b8b5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14159,3 +14159,27 @@ perform the operations required for synchronizing plain text.")
 
 (define-public python2-diff-match-patch
   (package-with-python2 python-diff-match-patch))
+
+(define-public python-dirsync
+  (package
+    (name "python-dirsync")
+    (version "2.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dirsync" version ".zip"))
+        (sha256
+         (base32
+          "1hcdvmkwd5512zbxpin0k7bx5bkgzy3swjx7d0kj1y45af6r75v2"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (propagated-inputs
+     `(("six" ,python-six)))
+    (home-page "https://bitbucket.org/tkhyn/dirsync")
+    (synopsis "Advanced directory tree synchronisation tool")
+    (description "Advanced directory tree synchronisation tool.")
+    (license license:expat)))
+
+(define-public python2-dirsync
+  (package-with-python2 python-dirsync))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #12: 0011-gnu-Add-python-nosexcover.patch --]
[-- Type: text/x-patch, Size: 1747 bytes --]

From 3dfabe96308f6400860827233010681e19353864 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:00:09 +0200
Subject: [PATCH 11/34] gnu: Add python-nosexcover.

* gnu/packages/python.scm (python-nosexcover, python2-nosexcover): New variables.
---
 gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 7c478b8b5..940f33e55 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14183,3 +14183,29 @@ perform the operations required for synchronizing plain text.")
 
 (define-public python2-dirsync
   (package-with-python2 python-dirsync))
+
+(define-public python-nosexcover
+  (package
+    (name "python-nosexcover")
+    (version "1.0.11")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "nosexcover" version))
+              (sha256
+               (base32
+                "10xqr12qv62k2flxwqhh8cr00cjhn7sfjrm6p35gd1x5bmjkr319"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-nose" ,python-nose)))
+    (home-page "http://github.com/cmheisel/nose-xcover")
+    (synopsis "Extends nose.plugins.cover to add Cobertura-style XML reports")
+    (description "Companion to the built-in nose.plugins.cover.  This plugin
+will write out an XML coverage report to a file named coverage.xml.
+
+It will honor all the options you pass to the Nose coverage plugin, especially
+–cover-package.")
+    (license license:expat)))
+
+(define-public python2-nosexcover
+  (package-with-python2 python-nosexcover))
-- 
2.12.2


[-- Attachment #13: 0012-gnu-Add-python-elasticsearch.patch --]
[-- Type: text/x-patch, Size: 1936 bytes --]

From a226932bed2185fd380bc126411a20000ce2b425 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:33:57 +0200
Subject: [PATCH 12/34] gnu: Add python-elasticsearch.

* gnu/packages/python.scm (python-elasticsearch, python2-elasticsearch):
New variables.
---
 gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 940f33e55..7465ab071 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14209,3 +14209,35 @@ It will honor all the options you pass to the Nose coverage plugin, especially
 
 (define-public python2-nosexcover
   (package-with-python2 python-nosexcover))
+
+(define-public python-elasticsearch
+  (package
+    (name "python-elasticsearch")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "elasticsearch" version))
+        (sha256
+         (base32
+          "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-nosexcover" ,python-nosexcover)
+       ("python-pyaml" ,python-pyaml)
+       ("python-requests" ,python-requests)))
+    (propagated-inputs
+     `(("urllib3" ,python-urllib3)))
+    (arguments
+     ;; tests require the test_elasticsearch module but it is not distributed.
+     `(#:tests? #f))
+    (home-page "https://github.com/elastic/elasticsearch-py")
+    (synopsis "Low-level client for Elasticsearch")
+    (description "Official low-level client for Elasticsearch.  Its goal is to
+provide common ground for all Elasticsearch-related code in Python; because of
+this it tries to be opinion-free and very extendable.")
+    (license license:expat)))
+
+(define-public python2-elasticsearch
+  (package-with-python2 python-elasticsearch))
-- 
2.12.2


[-- Attachment #14: 0013-gnu-python-dateutil-Update-to-2.6.0.patch --]
[-- Type: text/x-patch, Size: 1128 bytes --]

From 46c939a134d758c0175d1961b858e0021ac08409 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:35:27 +0200
Subject: [PATCH 13/34] gnu: python-dateutil: Update to 2.6.0.

* gnu/packages/python.scm (python-dateutil, python2-dateutil): Update to 2.6.0.
---
 gnu/packages/python.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 7465ab071..f0eed8886 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1108,14 +1108,14 @@ Python file, so it can be easily copied into your project.")
 (define-public python-dateutil
   (package
     (name "python-dateutil")
-    (version "2.5.3")
+    (version "2.6.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "python-dateutil" version))
       (sha256
        (base32
-        "1v9j9fmf8g911yg6k01xa2db6dx3wv73zkk7fncsj7vagjqgs20l"))))
+        "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)))
-- 
2.12.2


[-- Attachment #15: 0014-gnu-Add-python-levenshtein.patch --]
[-- Type: text/x-patch, Size: 1710 bytes --]

From 1a318d6e230334d653c31cdffd7854cd993d2a29 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:44:38 +0200
Subject: [PATCH 14/34] gnu: Add python-levenshtein.

* gnu/packages/python.scm (python-levenshtein, python2-levenshtein):
New variables.
---
 gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f0eed8886..304ed3a6a 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14241,3 +14241,31 @@ this it tries to be opinion-free and very extendable.")
 
 (define-public python2-elasticsearch
   (package-with-python2 python-elasticsearch))
+
+(define-public python-levenshtein
+  (package
+    (name "python-levenshtein")
+    (version "0.12.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (pypi-uri "python-Levenshtein" version))
+      (sha256
+       (base32
+        "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/ztane/python-Levenshtein")
+    (synopsis "Fast computation of Levenshtein distance and string similarity")
+    (description
+     "The Levenshtein Python C extension module contains functions for fast computation of
+@enumerate
+@item Levenshtein (edit) distance, and edit operations
+@item string similarity
+@item approximate median strings, and generally string averaging
+@item string sequence and set similarity
+@end enumerate
+It supports both normal and Unicode strings.")
+    (license license:gpl2+)))
+
+(define-public python2-levenshtein
+  (package-with-python2 python-levenshtein))
-- 
2.12.2


[-- Attachment #16: 0015-gnu-Add-python-scandir.patch --]
[-- Type: text/x-patch, Size: 1624 bytes --]

From 94aa5c13189965efbc0fd7b3a561fd72a61637d0 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:47:22 +0200
Subject: [PATCH 15/34] gnu: Add python-scandir.

* gnu/packages/python.scm (python-scandir, python2-scandir): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 304ed3a6a..799934b5f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14269,3 +14269,27 @@ It supports both normal and Unicode strings.")
 
 (define-public python2-levenshtein
   (package-with-python2 python-levenshtein))
+
+(define-public python-scandir
+  (package
+    (name "python-scandir")
+    (version "1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "scandir" version))
+       (sha256
+        (base32 "0yjrgp0mxp3d8bjkq2m1ac2ys8n76wykksvgyjrnil9gr3fx7a5d"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/benhoyt/scandir")
+    (synopsis "Directory iteration function")
+    (description
+     "Directory iteration function like os.listdir(), except that instead of
+returning a list of bare filenames, it yields DirEntry objects that include
+file type and stat information along with the name.  Using scandir() increases
+the speed of os.walk() by 2-20 times (depending on the platform and file
+system) by avoiding unnecessary calls to os.stat() in most cases.")
+    (license license:bsd-3)))
+
+(define-public python2-scandir
+  (package-with-python2 python-scandir))
-- 
2.12.2


[-- Attachment #17: 0016-gnu-Add-python2-stemming.patch --]
[-- Type: text/x-patch, Size: 1601 bytes --]

From 128850d64d118a728c415891fe3893d81a05172a Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:52:16 +0200
Subject: [PATCH 16/34] gnu: Add python2-stemming.

* gnu/packages/python.scm (python2-stemming): New variable.
---
 gnu/packages/python.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 799934b5f..34981780e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14293,3 +14293,26 @@ system) by avoiding unnecessary calls to os.stat() in most cases.")
 
 (define-public python2-scandir
   (package-with-python2 python-scandir))
+
+(define-public python2-stemming
+  (package
+    (name "python2-stemming")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "stemming" version))
+       (sha256
+        (base32 "0ldwa24gnnxhniv0fhygkpc2mwgd93q10ag8rvzayv6hw418frsr"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2))
+    (home-page "https://bitbucket.org/mchaput/stemming/overview")
+    (synopsis "Python implementations of various stemming algorithms")
+    (description
+     "Python implementations of the Porter, Porter2, Paice-Husk, and Lovins
+stemming algorithms for English. These implementations are straightforward and
+efficient, unlike some Python versions of the same algorithms available on the
+Web. This package is an extraction of the stemming code included in the Whoosh
+search engine.")
+    (license license:public-domain)))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #18: 0017-gnu-Add-python-factory-boy.patch --]
[-- Type: text/x-patch, Size: 1966 bytes --]

From f7b37ac2efb684afa25f990f3579650ccfe16a9c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 22:32:33 +0200
Subject: [PATCH 17/34] gnu: Add python-factory-boy.

* gnu/packages/python.scm (python-factory-boy, python2-factory-boy): New variables.
---
 gnu/packages/python.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 34981780e..1d72919b7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14316,3 +14316,34 @@ efficient, unlike some Python versions of the same algorithms available on the
 Web. This package is an extraction of the stemming code included in the Whoosh
 search engine.")
     (license license:public-domain)))
+
+(define-public python-factory-boy
+  (package
+    (name "python-factory-boy")
+    (version "2.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "factory_boy" version))
+       (sha256
+        (base32 "1fvin6san5xsjh2c4y18caj2lnmwxlylyqm8mh1yc6rp38wlwr56"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("faker" ,python-faker)))
+    (home-page "https://github.com/benhoyt/scandir")
+    (synopsis "A versatile test fixtures replacement")
+    (description
+     "factory_boy is a fixtures replacement based on thoughtbot’s factory_girl.
+
+As a fixtures replacement tool, it aims to replace static, hard to maintain
+fixtures with easy-to-use factories for complex object.
+
+Instead of building an exhaustive test setup with every possible combination
+of corner cases, factory_boy allows you to use objects customized for the
+current test, while only declaring the test-specific fields")
+    (license license:expat)))
+
+(define-public python2-factory-boy
+  (package-with-python2 python-factory-boy))
-- 
2.12.2


[-- Attachment #19: 0018-gnu-Add-python-translate-toolkit.patch --]
[-- Type: text/x-patch, Size: 2164 bytes --]

From 9fd512af4a3c0bb0202a69feb281a3899a9c24c6 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 17:19:27 +0200
Subject: [PATCH 18/34] gnu: Add python-translate-toolkit.

* gnu/packages/python.scm (python-translate-toolkit, python2-translate-toolkit):
New variables.
---
 gnu/packages/python.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 1d72919b7..9b8a7465e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14347,3 +14347,40 @@ current test, while only declaring the test-specific fields")
 
 (define-public python2-factory-boy
   (package-with-python2 python-factory-boy))
+
+(define-public python-translate-toolkit
+  (package
+    (name "python-translate-toolkit")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "translate-toolkit" version ".tar.bz2"))
+       (sha256
+        (base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-sphinx" ,python-sphinx)))
+    (propagated-inputs
+     `(("python-babel" ,python-babel)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-chardet" ,python-chardet)
+       ("python-diff-match-patch" ,python-diff-match-patch)
+       ("python-levenshtein" ,python-levenshtein)
+       ("python-lxml" ,python-lxml)
+       ("python-six" ,python-six)
+       ("python-vobject" ,python-vobject)
+       ("python-pyyaml" ,python-pyyaml)))
+    (arguments
+     ;; TODO: tests don't run properly
+     `(#:tests? #f))
+    (home-page "http://toolkit.translatehouse.org")
+    (synopsis "Tools and API for translation and localization engineering")
+    (description
+     "Tools and API for translation and localization engineering.  It contains
+several utilities, as well as an API for building localization tools.")
+    (license license:gpl2+)))
+
+(define-public python2-translate-toolkit
+  (package-with-python2 python-translate-toolkit))
-- 
2.12.2


[-- Attachment #20: 0019-gnu-Add-python-mysqlclient.patch --]
[-- Type: text/x-patch, Size: 1911 bytes --]

From 88ea5ccf166456b3eda625a86045df1f8eddf715 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 17:24:16 +0200
Subject: [PATCH 19/34] gnu: Add python-mysqlclient.

* gnu/packages/python.scm (python-mysqlclient, python2-mysqlclient): New variables.
---
 gnu/packages/python.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9b8a7465e..e372d29f4 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14384,3 +14384,38 @@ several utilities, as well as an API for building localization tools.")
 
 (define-public python2-translate-toolkit
   (package-with-python2 python-translate-toolkit))
+
+(define-public python-mysqlclient
+  (package
+    (name "python-mysqlclient")
+    (version "1.3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mysqlclient" version))
+       (sha256
+        (base32
+         "0qkj570x4rbsblji6frvsvp2v1ap32dqzj1lq62zp9515ffsyaj5"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("mariadb" ,mariadb)
+       ("nose" ,python-nose)
+       ("mock" ,python-mock)
+       ("py.test" ,python-pytest)))
+    (inputs
+     `(("mysql" ,mysql)
+       ("libz" ,zlib)
+       ("openssl" ,openssl)))
+    (home-page "https://github.com/PyMySQL/mysqlclient-python")
+    (synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
+    (description "MySQLdb is an interface to the popular MySQL database server
+for Python.  The design goals are:
+@enumerate
+@item Compliance with Python database API version 2.0 [PEP-0249],
+@item Thread-safety,
+@item Thread-friendliness (threads will not block each other).
+@end enumerate")
+    (license license:gpl2)))
+
+(define-public python2-mysqlclient
+  (package-with-python2 python-mysqlclient))
-- 
2.12.2


[-- Attachment #21: 0020-gnu-Add-python-django-assets.patch --]
[-- Type: text/x-patch, Size: 2524 bytes --]

From 20ac68b9c1e52880bc2ae10832b1169d7f44ed9c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:16:07 +0200
Subject: [PATCH 20/34] gnu: Add python-django-assets.

* gnu/packages/django.scm (python-django-assets, python2-django-assets):
New variables.
---
 gnu/packages/django.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 2038473f5..52668aa3c 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -245,3 +245,46 @@ templatetags and a full test suite.")
 
 (define-public python2-django-gravatar2
   (package-with-python2 python-django-gravatar2))
+
+(define-public python-django-assets
+  (package
+    (name "python-django-assets")
+    (version "0.12")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-assets" version))
+              (sha256
+               (base32
+                "0y0007fvkn1rdlj2g0y6k1cnkx53kxab3g8i85i0rd58k335p365"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; https://github.com/miracle2k/django-assets/issues/87
+               `(begin
+                  (substitute* "tests/__init__.py"
+                    (("settings.configure.*")
+                     (string-append
+                       "settings.configure(\n"
+                       "INSTALLED_APPS=['django_assets', "
+                       "'django.contrib.staticfiles'],\n"
+                       "TEMPLATES=[{'BACKEND': "
+                       "'django.template.backends.django.DjangoTemplates'}],\n"
+                       ")\n")))
+                 ;; These tests fail
+                 (substitute* "tests/test_django.py"
+                   (("TestLoader") "NoTestLoader"))))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("python-webassets" ,python-webassets)))
+    (home-page "http://github.com/miracle2k/django-assets")
+    (synopsis "Asset management for Django")
+    (description
+      "Asset management for Django, to compress and merge CSS and Javascript
+files.  Integrates the webassets library with Django, adding support for
+merging, minifying and compiling CSS and Javascript files.")
+    (license license:bsd-2)))
+
+(define-public python2-django-assets
+  (package-with-python2 python-django-assets))
-- 
2.12.2


[-- Attachment #22: 0021-gnu-Add-python-django-jsonfield.patch --]
[-- Type: text/x-patch, Size: 1843 bytes --]

From 1da250281f8a13d29bbd7c062ef7c708adff3324 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:18:30 +0200
Subject: [PATCH 21/34] gnu: Add python-django-jsonfield.

* gnu/packages/django.scm (python-django-jsonfield, python2-django-jsonfield):
New variables.
---
 gnu/packages/django.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 52668aa3c..e259a75b5 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -288,3 +288,31 @@ merging, minifying and compiling CSS and Javascript files.")
 
 (define-public python2-django-assets
   (package-with-python2 python-django-assets))
+
+(define-public python-django-jsonfield
+  (package
+    (name "python-django-jsonfield")
+    (version "1.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "jsonfield" version))
+              (sha256
+               (base32
+                "19x4lak0hg9c20r7mvf27w7i8r6i4sg2g0ypmlmp2665fnk76zvy"))
+            (modules '((guix build utils)))
+            (snippet
+              '(substitute* "jsonfield/tests.py"
+                 (("django.forms.util") "django.forms.utils")))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/bradjasper/django-jsonfield")
+    (synopsis "Store validated JSON in your model")
+    (description
+      "django-jsonfield is a reusable Django field that allows you to store
+validated JSON in your model.  It silently takes care of serialization.  To
+use, simply add the field to one of your models.")
+    (license license:expat)))
+
+(define-public python2-django-jsonfield
+  (package-with-python2 python-django-jsonfield))
-- 
2.12.2


[-- Attachment #23: 0022-gnu-Add-python-django-bulk-update.patch --]
[-- Type: text/x-patch, Size: 1817 bytes --]

From 04ed560e5fedcd1b523680df7498e92baf997528 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:28:37 +0200
Subject: [PATCH 22/34] gnu: Add python-django-bulk-update.

* gnu/packages/django.scm (python-django-bulk-update, python2-django-bulk-update):
New variables.
---
 gnu/packages/django.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index e259a75b5..36e6ab885 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -316,3 +316,32 @@ use, simply add the field to one of your models.")
 
 (define-public python2-django-jsonfield
   (package-with-python2 python-django-jsonfield))
+
+(define-public python-django-bulk-update
+  (package
+    (name "python-django-bulk-update")
+    (version "1.1.10")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-bulk-update" version))
+              (sha256
+               (base32
+                "0mbng9m7swfc0dnidipbzlxfhlfjrv755dlnha5s4m9mgdxb1fhc"))))
+    (build-system python-build-system)
+    (arguments
+     ;; tests seem to be broken
+     `(#:tests? #f))
+    (native-inputs
+     `(("six" ,python-six)
+       ("jsonfield" ,python-django-jsonfield)))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/aykut/django-bulk-update")
+    (synopsis "Simple bulk update over Django ORM or with helper function")
+    (description
+      "Simple bulk update over Django ORM or with helper function.  This
+project aims to bulk update given objects using one query over Django ORM.")
+    (license license:expat)))
+
+(define-public python2-django-bulk-update
+  (package-with-python2 python-django-bulk-update))
-- 
2.12.2


[-- Attachment #24: 0023-gnu-Add-python-django-contact-form.patch --]
[-- Type: text/x-patch, Size: 1708 bytes --]

From bba15d429a0a5945282fa28ff98794d190a0c3e1 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:51:24 +0200
Subject: [PATCH 23/34] gnu: Add python-django-contact-form.

* gnu/packages/django.scm (python-django-contact-form, python2-django-contact-form):
New variables.
---
 gnu/packages/django.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 36e6ab885..d618d3c48 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -345,3 +345,30 @@ project aims to bulk update given objects using one query over Django ORM.")
 
 (define-public python2-django-bulk-update
   (package-with-python2 python-django-bulk-update))
+
+(define-public python-django-contact-form
+  (package
+    (name "python-django-contact-form")
+    (version "1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-contact-form" version))
+              (sha256
+               (base32
+                "0az590y56k5ahv4sixrkn54d3a8ig2q2z9pl6s3m4f533mx2gj17"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/ubernostrum/django-contact-form")
+    (synopsis "Contact form for Django")
+    (description
+      "This application provides simple, extensible contact-form functionality
+for Django sites.")
+    (license license:bsd-3)))
+
+(define-public python2-django-contact-form
+  (package-with-python2 python-django-contact-form))
-- 
2.12.2


[-- Attachment #25: 0024-gnu-Add-python-django-contrib-comments.patch --]
[-- Type: text/x-patch, Size: 1764 bytes --]

From 2f3f794c3f1151529c3a1ced5e81a044611a1656 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:01:33 +0200
Subject: [PATCH 24/34] gnu: Add python-django-contrib-comments.

* gnu/packages/django.scm (python-django-contrib-comments,
python2-django-contrib-comments): New variables.
---
 gnu/packages/django.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index d618d3c48..f0bf537de 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -372,3 +372,28 @@ for Django sites.")
 
 (define-public python2-django-contact-form
   (package-with-python2 python-django-contact-form))
+
+(define-public python-django-contrib-comments
+  (package
+    (name "python-django-contrib-comments")
+    (version "1.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-contrib-comments" version))
+              (sha256
+               (base32
+                "0bxsgw8jrkhg6r5s0z6ksfi4w8yknaqb1s9acmxd9pm3pnsnp5kx"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/django/django-contrib-comments")
+    (synopsis "Comments framework")
+    (description
+      "Django used to include a comments framework; since Django 1.6 it's been
+separated to a separate project.  This is that project.  This framework can be
+used to attach comments to any model, so you can use it for comments on blog
+entries, photos, book chapters, or anything else.")
+    (license license:bsd-3)))
+
+(define-public python2-django-contrib-comments
+  (package-with-python2 python-django-contrib-comments))
-- 
2.12.2


[-- Attachment #26: 0025-gnu-Add-python-django-overextends.patch --]
[-- Type: text/x-patch, Size: 1887 bytes --]

From 5fc586bebbb5a54c12beb28bbf4503ade0dfad66 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:08:11 +0200
Subject: [PATCH 25/34] gnu: Add python-django-overextends.

* gnu/packages/django.scm (python-django-overextends, python2-django-overextends):
New variables.
---
 gnu/packages/django.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index f0bf537de..1e55909d5 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -397,3 +397,32 @@ entries, photos, book chapters, or anything else.")
 
 (define-public python2-django-contrib-comments
   (package-with-python2 python-django-contrib-comments))
+
+(define-public python-django-overextends
+  (package
+    (name "python-django-overextends")
+    (version "0.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-overextends" version))
+              (sha256
+               (base32
+                "05rxfjwkwi354qpwjacv1ak77ksgj5fql9yz8i3f1a20b97l8196"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("sphinx-me" ,python-sphinx-me)))
+    (home-page "https://github.com/stephenmcd/django-overextends")
+    (synopsis "Circular template inheritance")
+    (description
+      "A Django reusable app providing the overextends template tag, a drop-in
+replacement for Django's extends tag, which allows you to use circular template
+inheritance.  The primary use-case for overextends is to simultaneously
+override and extend templates from other reusable apps, in your own Django
+project.")
+    (license license:bsd-2)))
+
+(define-public python2-django-overextends
+  (package-with-python2 python-django-overextends))
-- 
2.12.2


[-- Attachment #27: 0026-gnu-Add-python-django-redis.patch --]
[-- Type: text/x-patch, Size: 1545 bytes --]

From c8f2457eb6f9abe9905b47cbb145697a289b3f9b Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:11:48 +0200
Subject: [PATCH 26/34] gnu: Add python-django-redis.

* gnu/packages/django.scm (python-django-redis, python2-django-redis):
New variables.
---
 gnu/packages/django.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 1e55909d5..dcd2f86c5 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -426,3 +426,29 @@ project.")
 
 (define-public python2-django-overextends
   (package-with-python2 python-django-overextends))
+
+(define-public python-django-redis
+  (package
+    (name "python-django-redis")
+    (version "4.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-redis" version))
+              (sha256
+               (base32
+                "0yyyxv8n9l9dhs893jsqwg2cxqkkc79g719n9dzzzqgkzialv1c1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (native-inputs
+     `(("python-redis" ,python-redis)))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/niwibe/django-redis")
+    (synopsis "Full featured redis cache backend for Django")
+    (description
+      "Full featured redis cache backend for Django.")
+    (license license:bsd-3)))
+
+(define-public python2-django-redis
+  (package-with-python2 python-django-redis))
-- 
2.12.2


[-- Attachment #28: 0027-gnu-Add-python-django-rq.patch --]
[-- Type: text/x-patch, Size: 1607 bytes --]

From 245bc01b4b18f34504623317ce236e9a0b6b792e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:14:03 +0200
Subject: [PATCH 27/34] gnu: Add python-django-rq.

* gnu/packages/django.scm (python-django-rq, python2-django-rq): New variables.
---
 gnu/packages/django.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index dcd2f86c5..d87d5820f 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -452,3 +452,30 @@ project.")
 
 (define-public python2-django-redis
   (package-with-python2 python-django-redis))
+
+(define-public python-django-rq
+  (package
+    (name "python-django-rq")
+    (version "0.9.4")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-rq" version))
+              (sha256
+               (base32
+                "04v8ilfdp10bk31fxgh4cn083gsn5m06342cnpm5d10nd8hc0vky"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("python-rq" ,python-rq)))
+    (home-page "https://github.com/ui/django-rq")
+    (synopsis "Django integration with RQ")
+    (description
+      "Django integration with RQ, a Redis based Python queuing library.
+Django-RQ is a simple app that allows you to configure your queues in django's
+settings.py and easily use them in your project.")
+    (license license:expat)))
+
+(define-public python2-django-rq
+  (package-with-python2 python-django-rq))
-- 
2.12.2


[-- Attachment #29: 0028-gnu-Add-python-django-sortedm2m.patch --]
[-- Type: text/x-patch, Size: 1692 bytes --]

From d133c91a925e488a09da92fbb68b1a70d29cdc20 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:18:02 +0200
Subject: [PATCH 28/34] gnu: Add python-django-sortedm2m.

* gnu/packages/django.scm (python-django-sortedm2m, python2-django-sortedm2m):
New variables.
---
 gnu/packages/django.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index d87d5820f..013ad9a38 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -479,3 +479,29 @@ settings.py and easily use them in your project.")
 
 (define-public python2-django-rq
   (package-with-python2 python-django-rq))
+
+(define-public python-django-sortedm2m
+  (package
+    (name "python-django-sortedm2m")
+    (version "1.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-sortedm2m" version))
+              (sha256
+               (base32
+                "0axf765i7b3c2s83nlph47asi8s071dhq8l7y382v1pw785s22vi"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/gregmuellegger/django-sortedm2m")
+    (synopsis "drop-in replacement for django's own ManyToManyField")
+    (description
+      "Sortedm2m is a drop-in replacement for django's own ManyToManyField.
+The provided SortedManyToManyField behaves like the original one but remembers
+the order of added relations.")
+    (license license:bsd-3)))
+
+(define-public python2-django-sortedm2m
+  (package-with-python2 python-django-sortedm2m))
-- 
2.12.2


[-- Attachment #30: 0029-gnu-Add-python-django-appconf.patch --]
[-- Type: text/x-patch, Size: 1781 bytes --]

From 5de7cc59ae72b60efad6a499f3b315fa02d683f5 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:18:46 +0200
Subject: [PATCH 29/34] gnu: Add python-django-appconf.

* gnu/packages/django.scm (python-django-appconf, python2-django-appconf):
New variables.
---
 gnu/packages/django.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 013ad9a38..fc44fd928 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -505,3 +505,29 @@ the order of added relations.")
 
 (define-public python2-django-sortedm2m
   (package-with-python2 python-django-sortedm2m))
+
+(define-public python-django-appconf
+  (package
+    (name "python-django-appconf")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-appconf" version))
+              (sha256
+               (base32
+                "0qdjdx35g66xjsc50v0c5h3kg6njs8df33mbjx6j4k1vd3m9lkba"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/django-compressor/django-appconf")
+    (synopsis "Handle configuration defaults of packaged Django apps")
+    (description
+      "This app precedes Django's own AppConfig classes that act as \"objects
+[to] store metadata for an application\" inside Django's app loading mechanism.
+In other words, they solve a related but different use case than
+django-appconf and can't easily be used as a replacement.  The similarity in
+name is purely coincidental.")
+    (license license:bsd-3)))
+
+(define-public python2-django-appconf
+  (package-with-python2 python-django-appconf))
-- 
2.12.2


[-- Attachment #31: 0030-gnu-Add-python-django-statici18n.patch --]
[-- Type: text/x-patch, Size: 1593 bytes --]

From a35c0e70126ef8c99f552dde3dc7a7f8e90d8955 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:19:19 +0200
Subject: [PATCH 30/34] gnu: Add python-django-statici18n.

* gnu/packages/django.scm (python-django-statici18n, python2-django-statici18n):
New variables.
---
 gnu/packages/django.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index fc44fd928..44aaf27d0 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -531,3 +531,27 @@ name is purely coincidental.")
 
 (define-public python2-django-appconf
   (package-with-python2 python-django-appconf))
+
+(define-public python-django-statici18n
+  (package
+    (name "python-django-statici18n")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-statici18n" version))
+              (sha256
+               (base32
+                "0alcf4g1nv69njhq5k3qw4mfl2k6dc18bik5nk0g1mnp3m8zyz7k"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("django-appconf" ,python-django-appconf)))
+    (home-page "https://github.com/zyegfryed/django-statici18n")
+    (synopsis "Generate JavaScript catalog to static files")
+    (description
+      "A Django app that provides helper for generating JavaScript catalog to
+static files.")
+    (license license:bsd-3)))
+
+(define-public python2-django-statici18n
+  (package-with-python2 python-django-statici18n))
-- 
2.12.2


[-- Attachment #32: 0031-gnu-python-pytest-django-Update-to-3.1.2.patch --]
[-- Type: text/x-patch, Size: 1574 bytes --]

From 045c93faa3ec4ea3a5355cc5c0db615d0491bc18 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:46:03 +0200
Subject: [PATCH 31/34] gnu: python-pytest-django: Update to 3.1.2.

* gnu/packages/django.scm (python-pytest-django, python2-pytest-django):
Update to 3.1.2.
---
 gnu/packages/django.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 44aaf27d0..51c653518 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -128,13 +128,13 @@ with arguments to the field constructor.")
 (define-public python-pytest-django
   (package
     (name "python-pytest-django")
-    (version "2.9.1")
+    (version "3.1.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pytest-django" version))
               (sha256
                (base32
-                "1mmc7zsz3dlhs6sx4sppkj1vgshabi362r1a8b8wpj1qfximpqcb"))))
+                "02932m2sr8x22m4az8syr8g835g4ak77varrnw71n6xakmdcr303"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ; FIXME: How to run tests?
@@ -143,7 +143,7 @@ with arguments to the field constructor.")
          (add-after 'unpack 'patch-setuppy
            (lambda _
              (substitute* "setup.py"
-                          (("setuptools_scm==1.8.0") "setuptools_scm"))
+                          (("setuptools_scm==1.11.1") "setuptools_scm"))
              #t)))))
     (native-inputs
      `(("python-django" ,python-django)
-- 
2.12.2


[-- Attachment #33: 0032-gnu-python-pytest-cov-Update-to-2.4.0.patch --]
[-- Type: text/x-patch, Size: 1086 bytes --]

From ca2c4c8f44978bb29c58d0e68c6b4d0b0ea58a8e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:52:16 +0200
Subject: [PATCH 32/34] gnu: python-pytest-cov: Update to 2.4.0.

* gnu/packages/python.scm (python-pytest-cov, python2-pytest-cov): Update to
2.4.0.
---
 gnu/packages/python.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e372d29f4..00e274abf 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1843,14 +1843,14 @@ and many external plugins.")
 (define-public python-pytest-cov
   (package
     (name "python-pytest-cov")
-    (version "2.2.1")
+    (version "2.4.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pytest-cov" version))
         (sha256
          (base32
-          "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8"))))
+          "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.12.2


[-- Attachment #34: 0033-gnu-Fix-python2-django-allauth.patch --]
[-- Type: text/x-patch, Size: 1176 bytes --]

From a50e29957e5d5ebe404631ffe6efeaf0f37def9c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:09:47 +0200
Subject: [PATCH 33/34] gnu: Fix python2-django-allauth.

because python-openid is not the same package as python2-openid,
package-with-python2 doesn't work in packages that depend on it.

* gnu/packages/django.scm (python2-django-allauth)[propagated-inputs]:
Use python2 versions.
---
 gnu/packages/django.scm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 51c653518..37f437cf7 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -220,7 +220,13 @@ account authentication.")
     (license license:expat)))
 
 (define-public python2-django-allauth
-  (package-with-python2 python-django-allauth))
+  (package
+    (inherit (package-with-python2 python-django-allauth))
+    (propagated-inputs
+     `(("python2-openid" ,python2-openid)
+       ("python2-requests" ,python2-requests)
+       ("python2-requests-oauthlib" ,python2-requests-oauthlib)))))
+    
 
 (define-public python-django-gravatar2
   (package
-- 
2.12.2


[-- Attachment #35: 0034-gnu-Add-pootle.patch --]
[-- Type: text/x-patch, Size: 3249 bytes --]

From 880314660308ad6e42b68a26eb8e8dd4a47441c4 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 23:11:07 +0200
Subject: [PATCH 34/34] gnu: Add pootle.

* gnu/packages/django.scm (pootle): New variable.
---
 gnu/packages/django.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 37f437cf7..1de8d2cd7 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -561,3 +561,68 @@ static files.")
 
 (define-public python2-django-statici18n
   (package-with-python2 python-django-statici18n))
+
+(define-public pootle
+  (package
+    (name "pootle")
+    (version "2.8.0rc5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "Pootle" version ".tar.bz2"))
+        (sha256
+         (base32
+          "0m6qcpkcy22dk3ad5y2k8851kqg2w6vrkywgy4vabwbacd7r1mvn"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin
+            (mkdir-p "pytest_pootle/data/po/.tmp")
+            (substitute* "Pootle.egg-info/requires.txt"
+              (("1.7.3") "1.8.0")
+              (("2.0.0") "2.1.0"))
+            (substitute* "requirements/tests.txt"
+              (("==3.0.6") ">=3.0.6"))
+            (substitute* "requirements/base.txt"
+              (("1.7.3") "1.8.0")
+              (("2.0.0") "2.1.0"))))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:tests? #f))
+    (propagated-inputs
+     `(("django-allauth" ,python2-django-allauth)
+       ("django-assets" ,python2-django-assets)
+       ("django-bulk-update" ,python2-django-bulk-update)
+       ("django-contact-form" ,python2-django-contact-form)
+       ("django-contrib-comments" ,python2-django-contrib-comments)
+       ("django-overextends" ,python2-django-overextends)
+       ("django-redis" ,python2-django-redis)
+       ("django-rq" ,python2-django-rq)
+       ("django-sortedm2m" ,python2-django-sortedm2m)
+       ("django-statici18n" ,python2-django-statici18n)
+       ("babel" ,python2-babel)
+       ("cssmin" ,python2-cssmin)
+       ("diff-match-patch" ,python2-diff-match-patch)
+       ("dirsync" ,python2-dirsync)
+       ("elasticsearch" ,python2-elasticsearch)
+       ("jsonfield" ,python2-django-jsonfield)
+       ("lxml" ,python2-lxml)
+       ("dateutil" ,python2-dateutil)
+       ("levenshtein" ,python2-levenshtein)
+       ("mysqlclient" ,python2-mysqlclient)
+       ("psycopg2" ,python2-psycopg2)
+       ("pytz" ,python2-pytz)
+       ("rq" ,python2-rq)
+       ("scandir" ,python2-scandir)
+       ("stemming" ,python2-stemming)
+       ("translate-toolkit" ,python2-translate-toolkit)))
+    (native-inputs
+     `(("python2-pytest-warnings" ,python2-pytest-warnings)
+       ("python2-pytest-django" ,python2-pytest-django)
+       ("python2-pytest-catchlog" ,python2-pytest-catchlog)
+       ("python2-pytest-cov" ,python2-pytest-cov)
+       ("python2-factory-boy" ,python2-factory-boy)))
+    (home-page "http://pootle.translatehouse.org/")
+    (synopsis "Community localization server")
+    (description "Community localization server.")
+    (license license:gpl3+)))
-- 
2.12.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#26613: Add pootle
  2017-04-22 21:13 bug#26613: Add pootle Julien Lepiller
@ 2017-04-23  0:33 ` Leo Famulari
  2017-04-23 15:25   ` Julien Lepiller
  0 siblings, 1 reply; 4+ messages in thread
From: Leo Famulari @ 2017-04-23  0:33 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 26613

[-- Attachment #1: Type: text/plain, Size: 8316 bytes --]

On Sat, Apr 22, 2017 at 11:13:14PM +0200, Julien Lepiller wrote:

Thanks for all these patches!

> here are patches that add pootle, a translation server written in
> django. Some patches modify packages that have several dependents, so
> it should probably go to core-updates first.

We don't want to update foo and break foo's dependents on the master
branch, but unless foo has > 1200 dependents, we can avoid waiting for
core-updates. See:

https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html

For this patch series, the bigger changes are updates to pytest-runner
and dateutil, right? That's less than 200 dependent packages. At that
scale, all the packages could be built as a test on a developer's
machine, or you could just check a few dependent packages and push it to
master with fingers crossed ;)

Patch-specific comments below. Whatever I don't comment on LGTM.

> Subject: [PATCH 01/34] gnu: python-pytest-runner: Update to 2.11.1.
> 
> * gnu/packages/python.scm (python-pytest-runner)
> (python2-pytest-runner): Update to 2.11.1.

I'd check a handful of dependent packages and cross my fingers :)

> Subject: [PATCH 02/34] gnu: Add python-pytest-warnings.
> 
> * gnu/packages/python.scm (python-pytest-warnings, python2-pytest-warnings):
> New variables.

> +    (description
> +     "Pytest plugin to list Python warnings in pytest report.")

I know it can be hard to write detailed descriptions for these little
modules, but please at least write a complete English sentence. For
example, "Python-pytest-warnings is a pytest plugin to list Python
warnings in the pytest report".

> Subject: [PATCH 03/34] gnu: Add python-pytest-catchlog.
> 
> * gnu/packages/python.scm (python-pytest-catchlog, python2-pytest-catchlog):
> New variables.

> +    (home-page "https://github.com/fschulze/pytest-warnings")

Wrong home-page?

> Subject: [PATCH 04/34] gnu: Add python-utils.
> 
> * gnu/packages/python.scm (python-utils, python2-utils): New variables.

> +    (version "2.0.1")

We should use the latest release (2.1.0) or leave a code comment
explaining why we are using an older version. I won't mention this again
if it's an issue for the rest of the new packages.

> Subject: [PATCH 05/34] gnu: Add python-webassets.
> 
> * gnu/packages/python.scm (python-webassets, python2-webassets): New variables.

> +    (home-page "http://github.com/miracle2k/webassets")

Please use the HTTPS URL.

> Subject: [PATCH 07/34] gnu: python-rq: Update to 0.7.1.
> 
> * gnu/packages/python.scm (python-rq, python2-rq): Update to 0.7.1.

We can add this to the commit message:

[source]: Use pypi-uri.

> Subject: [PATCH 11/34] gnu: Add python-nosexcover.
> 
> * gnu/packages/python.scm (python-nosexcover, python2-nosexcover): New variables.

> +    (description "Companion to the built-in nose.plugins.cover.  This plugin
> +will write out an XML coverage report to a file named coverage.xml.

"Nose-xcover is a companion to the built-in @code{nose.plugins.cover}.

> +
> +It will honor all the options you pass to the Nose coverage plugin, especially
> +???cover-package.")

Is '???cover-package' intended?

> Subject: [PATCH 17/34] gnu: Add python-factory-boy.
> 
> * gnu/packages/python.scm (python-factory-boy, python2-factory-boy): New variables.

> +    (arguments
> +     `(#:tests? #f))

Why?

> Subject: [PATCH 18/34] gnu: Add python-translate-toolkit.
> 
> * gnu/packages/python.scm (python-translate-toolkit, python2-translate-toolkit):
> New variables.

> +    (arguments
> +     ;; TODO: tests don't run properly
> +     `(#:tests? #f))

Does it indicate a real problem? If not, can you include a bit about how
it fails in the comment?

> Subject: [PATCH 20/34] gnu: Add python-django-assets.
> 
> * gnu/packages/django.scm (python-django-assets, python2-django-assets):
> New variables.

> +              (snippet
> +               ;; https://github.com/miracle2k/django-assets/issues/87
> +               `(begin
> +                  (substitute* "tests/__init__.py"
> +                    (("settings.configure.*")
> +                     (string-append
> +                       "settings.configure(\n"
> +                       "INSTALLED_APPS=['django_assets', "
> +                       "'django.contrib.staticfiles'],\n"
> +                       "TEMPLATES=[{'BACKEND': "
> +                       "'django.template.backends.django.DjangoTemplates'}],\n"
> +                       ")\n")))
> +                 ;; These tests fail
> +                 (substitute* "tests/test_django.py"
> +                   (("TestLoader") "NoTestLoader"))))))

I think we should do this in a build phase so that the result of `guix
build --source` is not affected. Origin snippets should be used for
removing non-free components and fixing serious security bugs.

> +    (home-page "http://github.com/miracle2k/django-assets")

HTTPS URL, please :)

> Subject: [PATCH 21/34] gnu: Add python-django-jsonfield.
> 
> * gnu/packages/django.scm (python-django-jsonfield, python2-django-jsonfield):
> New variables.

> +            (snippet
> +              '(substitute* "jsonfield/tests.py"
> +                 (("django.forms.util") "django.forms.utils")))))

I'd do this in a build phase, too.

> Subject: [PATCH 22/34] gnu: Add python-django-bulk-update.
> 
> * gnu/packages/django.scm (python-django-bulk-update, python2-django-bulk-update):
> New variables.

> +    (arguments
> +     ;; tests seem to be broken
> +     `(#:tests? #f))

I assume the installed package seems to be working ;)

> Subject: [PATCH 23/34] gnu: Add python-django-contact-form.
> 
> * gnu/packages/django.scm (python-django-contact-form, python2-django-contact-form):
> New variables.

> +    (arguments
> +     `(#:tests? #f))

Why?

> Subject: [PATCH 25/34] gnu: Add python-django-overextends.
> 
> * gnu/packages/django.scm (python-django-overextends, python2-django-overextends):
> New variables.

> +    (arguments
> +     `(#:tests? #f))

? :)

> Subject: [PATCH 26/34] gnu: Add python-django-redis.
> 
> * gnu/packages/django.scm (python-django-redis, python2-django-redis):
> New variables.

> +    (arguments
> +     `(#:tests? #f))

? :)

> Subject: [PATCH 27/34] gnu: Add python-django-rq.
> 
> * gnu/packages/django.scm (python-django-rq, python2-django-rq): New variables.

> +    (arguments
> +     `(#:tests? #f))

? :)

> Subject: [PATCH 28/34] gnu: Add python-django-sortedm2m.
> 
> * gnu/packages/django.scm (python-django-sortedm2m, python2-django-sortedm2m):
> New variables.

> +    (arguments
> +     `(#:tests? #f))

? :)

> Subject: [PATCH 33/34] gnu: Fix python2-django-allauth.
> 
> because python-openid is not the same package as python2-openid,
> package-with-python2 doesn't work in packages that depend on it.

I think this will need the python2-variant system, which was introduced
to handle Python packages whose python-2 variants can't be automatically
created by package-with-python2.

See:
https://bugs.gnu.org/22437

> Subject: [PATCH 34/34] gnu: Add pootle.
> 
> * gnu/packages/django.scm (pootle): New variable.

> +    (version "2.8.0rc5")

Usually we don't package beta versions or release candidates, but
sometimes it's the right thing to do. What's the story here?

> +        (modules '((guix build utils)))
> +        (snippet
> +         '(begin
> +            (mkdir-p "pytest_pootle/data/po/.tmp")
> +            (substitute* "Pootle.egg-info/requires.txt"
> +              (("1.7.3") "1.8.0")
> +              (("2.0.0") "2.1.0"))
> +            (substitute* "requirements/tests.txt"
> +              (("==3.0.6") ">=3.0.6"))
> +            (substitute* "requirements/base.txt"
> +              (("1.7.3") "1.8.0")
> +              (("2.0.0") "2.1.0"))))))

Let's do this in a build phase.

> +    (arguments
> +     `(#:python ,python-2

If it only supports python-2, can you mention that in a code comment?

> +       #:tests? #f))

Why skip the tests?

> +    (description "Community localization server.")

How about copying the text from <https://github.com/translate/pootle>
for the description?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#26613: Add pootle
  2017-04-23  0:33 ` Leo Famulari
@ 2017-04-23 15:25   ` Julien Lepiller
  2017-05-08 20:13     ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Julien Lepiller @ 2017-04-23 15:25 UTC (permalink / raw)
  To: 26613

[-- Attachment #1: Type: text/plain, Size: 2300 bytes --]

Le Sat, 22 Apr 2017 20:33:21 -0400,
Leo Famulari <leo@famulari.name> a écrit :

> On Sat, Apr 22, 2017 at 11:13:14PM +0200, Julien Lepiller wrote:
> 
> Thanks for all these patches!
> 
> > here are patches that add pootle, a translation server written in
> > django. Some patches modify packages that have several dependents,
> > so it should probably go to core-updates first.  
> 
> We don't want to update foo and break foo's dependents on the master
> branch, but unless foo has > 1200 dependents, we can avoid waiting for
> core-updates. See:
> 
> https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html
> 
> For this patch series, the bigger changes are updates to pytest-runner
> and dateutil, right? That's less than 200 dependent packages. At that
> scale, all the packages could be built as a test on a developer's
> machine, or you could just check a few dependent packages and push it
> to master with fingers crossed ;)
> 
> Patch-specific comments below. Whatever I don't comment on LGTM.
> 
> > Subject: [PATCH 01/34] gnu: python-pytest-runner: Update to 2.11.1.
> > 
> > * gnu/packages/python.scm (python-pytest-runner)
> > (python2-pytest-runner): Update to 2.11.1.  
> 
> I'd check a handful of dependent packages and cross my fingers :)
I've rebuilt everything, and nothing new fails.

> 
> [lots of suggestions]
OK, I applied all your suggestions, thanks :).

I attached the updated patches. I could find how to run some of the
testsuite, and commented when they failed before even running the tests
or when there was no testsuite to begin with. I had to add a few more
packages for the testsuites to run in some packages.

> 
> > Subject: [PATCH 34/34] gnu: Add pootle.
> > 
> > * gnu/packages/django.scm (pootle): New variable.  
> 
> > +    (version "2.8.0rc5")  
> 
> Usually we don't package beta versions or release candidates, but
> sometimes it's the right thing to do. What's the story here?
I use pootle on another system and found that the latest version has
some bugs that make it difficult to use (though not breaking it
completely). I'm a happy user of the release candidate. I could package
version 2.7.6 too, but I wouldn't use it ;).

> 
> [other suggestions]
>

All done too, thanks :)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-python-pytest-runner-Update-to-2.11.1.patch --]
[-- Type: text/x-patch, Size: 1144 bytes --]

From f57ed854a7a0a802934f76ff2ff622c907277e98 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 12:14:06 +0200
Subject: [PATCH 01/37] gnu: python-pytest-runner: Update to 2.11.1.

* gnu/packages/python.scm (python-pytest-runner)
(python2-pytest-runner): Update to 2.11.1.
---
 gnu/packages/python.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e51405bd9..142de0984 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1879,14 +1879,14 @@ supports coverage of subprocesses.")
 (define-public python-pytest-runner
   (package
     (name "python-pytest-runner")
-    (version "2.6.2")
+    (version "2.11.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-runner" version))
        (sha256
         (base32
-         "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7"))))
+         "1cw978kqqcq916b9gfns1qjqvg33c5ail5jhw9054dsynkm32flq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-python-pytest-warnings.patch --]
[-- Type: text/x-patch, Size: 1567 bytes --]

From d713ba00b66fd7496389210cc8ff04294ea2d458 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:20:09 +0200
Subject: [PATCH 02/37] gnu: Add python-pytest-warnings.

* gnu/packages/python.scm (python-pytest-warnings, python2-pytest-warnings):
New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 142de0984..1e64a0a9e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -13999,3 +13999,27 @@ exception message with a traceback that points to the culprit.")
 
 (define-public python2-fudge
   (package-with-python2 python-fudge))
+
+(define-public python-pytest-warnings
+  (package
+    (name "python-pytest-warnings")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-warnings" version))
+       (sha256
+        (base32
+         "0gf2dpahpl5igb7jh1sr9acj3z3gp7zahqdqb69nk6wx01c8kc1g"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("pytest" ,python-pytest-3.0)))
+    (home-page "https://github.com/fschulze/pytest-warnings")
+    (synopsis "Pytest plugin to list Python warnings in pytest report")
+    (description
+     "Python-pytest-warnings is a pytest plugin to list Python warnings in
+pytest report.")
+    (license license:expat)))
+
+(define-public python2-pytest-warnings
+  (package-with-python2 python-pytest-warnings))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-python-pytest-catchlog.patch --]
[-- Type: text/x-patch, Size: 1599 bytes --]

From 2d4e3ba25491bd2579baa3e6d69e2bb7c0fdbb0e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 22:14:02 +0200
Subject: [PATCH 03/37] gnu: Add python-pytest-catchlog.

* gnu/packages/python.scm (python-pytest-catchlog, python2-pytest-catchlog):
New variables.
---
 gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 1e64a0a9e..379697167 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14023,3 +14023,29 @@ pytest report.")
 
 (define-public python2-pytest-warnings
   (package-with-python2 python-pytest-warnings))
+
+(define-public python-pytest-catchlog
+  (package
+    (name "python-pytest-catchlog")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-catchlog" version ".zip"))
+       (sha256
+        (base32
+         "1w7wxh27sbqwm4jgwrjr9c2gy384aca5jzw9c0wzhl0pmk2mvqab"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (propagated-inputs
+     `(("pytest" ,python-pytest-3.0)))
+    (home-page "https://github.com/eisensheng/pytest-catchlog")
+    (synopsis "Pytest plugin to catch log messages")
+    (description
+     "Python-pytest-catchlog is a pytest plugin to catch log messages.  This is
+a fork of pytest-capturelog.")
+    (license license:expat)))
+
+(define-public python2-pytest-catchlog
+  (package-with-python2 python-pytest-catchlog))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0004-gnu-Add-python-utils.patch --]
[-- Type: text/x-patch, Size: 1615 bytes --]

From ceddec8f6fa2537d9e1aad16a3dabe34b326f9c7 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 12:31:55 +0200
Subject: [PATCH 04/37] gnu: Add python-utils.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 379697167..7409f6a07 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14049,3 +14049,28 @@ a fork of pytest-capturelog.")
 
 (define-public python2-pytest-catchlog
   (package-with-python2 python-pytest-catchlog))
+
+(define-public python-utils
+  (package
+    (name "python-utils")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "python-utils" version))
+              (sha256
+               (base32
+                "1mcsy6q5am4ya72rgkpb6kax6vv7c93cfkkas89xnpa4sj9zf28p"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("pytest-runner" ,python-pytest-runner)
+       ("pytest" ,python-pytest)
+       ("six" ,python-six)))
+    (home-page "https://github.com/WoLpH/python-utils")
+    (synopsis "Convenient utilities not included with the standard Python install")
+    (description
+      "Python Utils is a collection of small Python functions and classes which
+make common patterns shorter and easier.")
+    (license license:bsd-2)))
+
+(define-public python2-utils
+  (package-with-python2 python-utils))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0005-gnu-Add-python-webassets.patch --]
[-- Type: text/x-patch, Size: 1593 bytes --]

From 3dcae3046c5d0d60f333141fa8d3da6aef80e017 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:19:25 +0200
Subject: [PATCH 05/37] gnu: Add python-webassets.

* gnu/packages/python.scm (python-webassets, python2-webassets): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 7409f6a07..6bf2291a9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14074,3 +14074,27 @@ make common patterns shorter and easier.")
 
 (define-public python2-utils
   (package-with-python2 python-utils))
+
+(define-public python-webassets
+  (package
+    (name "python-webassets")
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "webassets" version))
+       (sha256
+        (base32
+         "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-jinja2" ,python-jinja2)
+       ("python-mock" ,python-mock)
+       ("python-nose" ,python-nose)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/miracle2k/webassets")
+    (synopsis "Media asset management")
+    (description "Merges, minifies and compresses Javascript and CSS files,
+supporting a variety of different filters, including YUI, jsmin, jspacker or
+CSS tidy.  Also supports URL rewriting in CSS files.")
+    (license license:bsd-2)))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #7: 0006-gnu-Add-python-sphinx-me.patch --]
[-- Type: text/x-patch, Size: 1666 bytes --]

From cc2c0e3ff5788173d17dc41442be48d8f325889b Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:22:46 +0200
Subject: [PATCH 06/37] gnu: Add python-sphinx-me.

* gnu/packages/python.scm (python-sphinx-me, python2-sphinx-me): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6bf2291a9..adb379ea5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14098,3 +14098,27 @@ make common patterns shorter and easier.")
 supporting a variety of different filters, including YUI, jsmin, jspacker or
 CSS tidy.  Also supports URL rewriting in CSS files.")
     (license license:bsd-2)))
+
+(define-public python-sphinx-me
+  (package
+    (name "python-sphinx-me")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "sphinx-me" version))
+       (sha256
+        (base32
+         "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/stephenmcd/sphinx-me")
+    (synopsis "Create a Sphinx documentation shell")
+    (description
+      "Create a Sphinx documentation shell for your project and include the
+README file as the documentation index.  It handles extracting the required
+meta data such as the project name, author and version from your project for
+use in your Sphinx docs.")
+    (license license:bsd-2)))
+
+(define-public python2-sphinx-me
+  (package-with-python2 python-sphinx-me))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #8: 0007-gnu-python-rq-Update-to-0.7.1.patch --]
[-- Type: text/x-patch, Size: 1249 bytes --]

From 42a5c506e91568c03608f5aadd4a90f78080ce5f Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:25:01 +0200
Subject: [PATCH 07/37] gnu: python-rq: Update to 0.7.1.

* gnu/packages/python.scm (python-rq, python2-rq): Update to 0.7.1.
[source]: Use pypi-uri.
---
 gnu/packages/python.scm | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index adb379ea5..e9fc2b979 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3375,15 +3375,13 @@ mining and data analysis.")
 (define-public python-rq
   (package
     (name "python-rq")
-    (version "0.5.2")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://pypi.python.org/packages/source/r/rq/rq-"
-             version ".tar.gz"))
+       (uri (pypi-uri "rq" version))
        (sha256
-        (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix"))))
+        (base32 "0gaq5pnh0zy46r8jvygi0ifbvz3pq6i7xla78ijcgjw0x77qzsdh"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-click" ,python-click)
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: 0008-gnu-Add-python-cssmin.patch --]
[-- Type: text/x-patch, Size: 1345 bytes --]

From 0524e9632ed09a9eb8d97fe06be9c27653ae7e95 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:27:33 +0200
Subject: [PATCH 08/37] gnu: Add python-cssmin.

* gnu/packages/python.scm (python-cssmin, python2-cssmin): New variables.
---
 gnu/packages/python.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e9fc2b979..89cacc4a5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14120,3 +14120,23 @@ use in your Sphinx docs.")
 
 (define-public python2-sphinx-me
   (package-with-python2 python-sphinx-me))
+
+(define-public python-cssmin
+  (package
+    (name "python-cssmin")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "cssmin" version))
+        (sha256
+         (base32
+          "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/zacharyvoase/cssmin")
+    (synopsis "Python port of the YUI CSS Compressor")
+    (description "Python port of the YUI CSS Compressor.")
+    (license (list license:expat license:bsd-3))))
+
+(define-public python2-cssmin
+  (package-with-python2 python-cssmin))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #10: 0009-gnu-Add-python-diff-match-patch.patch --]
[-- Type: text/x-patch, Size: 1483 bytes --]

From 0f046ce0698f8ee020ad1b133373a477a67556a0 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:34:24 +0200
Subject: [PATCH 09/37] gnu: Add python-diff-match-patch.

* gnu/packages/python.scm (python-diff-match-patch, python2-diff-match-patch):
New variables.
---
 gnu/packages/python.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 89cacc4a5..4b5209ac5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14140,3 +14140,24 @@ use in your Sphinx docs.")
 
 (define-public python2-cssmin
   (package-with-python2 python-cssmin))
+
+(define-public python-diff-match-patch
+  (package
+    (name "python-diff-match-patch")
+    (version "20121119")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "diff-match-patch" version))
+        (sha256
+         (base32
+          "0k1f3v8nbidcmmrk65m7h8v41jqi37653za9fcs96y7jzc8mdflx"))))
+    (build-system python-build-system)
+    (home-page "https://code.google.com/p/google-diff-match-patch")
+    (synopsis "Synchronize plain text")
+    (description "Diff Match and Patch libraries offer robust algorithms to
+perform the operations required for synchronizing plain text.")
+    (license license:asl2.0)))
+
+(define-public python2-diff-match-patch
+  (package-with-python2 python-diff-match-patch))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #11: 0010-gnu-Add-python-dirsync.patch --]
[-- Type: text/x-patch, Size: 1510 bytes --]

From 2569c05b4ca9dae4eeac58c2d901cea890830436 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 13:39:13 +0200
Subject: [PATCH 10/37] gnu: Add python-dirsync.

* gnu/packages/python.scm (python-dirsync, python2-dirsync): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4b5209ac5..0247966cf 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14161,3 +14161,27 @@ perform the operations required for synchronizing plain text.")
 
 (define-public python2-diff-match-patch
   (package-with-python2 python-diff-match-patch))
+
+(define-public python-dirsync
+  (package
+    (name "python-dirsync")
+    (version "2.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dirsync" version ".zip"))
+        (sha256
+         (base32
+          "1hcdvmkwd5512zbxpin0k7bx5bkgzy3swjx7d0kj1y45af6r75v2"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (propagated-inputs
+     `(("six" ,python-six)))
+    (home-page "https://bitbucket.org/tkhyn/dirsync")
+    (synopsis "Advanced directory tree synchronisation tool")
+    (description "Advanced directory tree synchronisation tool.")
+    (license license:expat)))
+
+(define-public python2-dirsync
+  (package-with-python2 python-dirsync))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #12: 0011-gnu-Add-python-nosexcover.patch --]
[-- Type: text/x-patch, Size: 1772 bytes --]

From 9b055c72fdbc86f745019a3710388ffc5e183576 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:00:09 +0200
Subject: [PATCH 11/37] gnu: Add python-nosexcover.

* gnu/packages/python.scm (python-nosexcover, python2-nosexcover): New variables.
---
 gnu/packages/python.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0247966cf..8f30bbe37 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14185,3 +14185,30 @@ perform the operations required for synchronizing plain text.")
 
 (define-public python2-dirsync
   (package-with-python2 python-dirsync))
+
+(define-public python-nosexcover
+  (package
+    (name "python-nosexcover")
+    (version "1.0.11")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "nosexcover" version))
+              (sha256
+               (base32
+                "10xqr12qv62k2flxwqhh8cr00cjhn7sfjrm6p35gd1x5bmjkr319"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-nose" ,python-nose)))
+    (home-page "http://github.com/cmheisel/nose-xcover")
+    (synopsis "Extends nose.plugins.cover to add Cobertura-style XML reports")
+    (description "Nose-xcover is a companion to the built-in
+@code{nose.plugins.cover}.  This plugin will write out an XML coverage report
+to a file named coverage.xml.
+
+It will honor all the options you pass to the Nose coverage plugin,
+especially -cover-package.")
+    (license license:expat)))
+
+(define-public python2-nosexcover
+  (package-with-python2 python-nosexcover))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #13: 0012-gnu-Add-python-elasticsearch.patch --]
[-- Type: text/x-patch, Size: 1940 bytes --]

From 7e65aaf8a4d3d06d457d373a58f4aa25562bf229 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:33:57 +0200
Subject: [PATCH 12/37] gnu: Add python-elasticsearch.

* gnu/packages/python.scm (python-elasticsearch, python2-elasticsearch):
New variables.
---
 gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8f30bbe37..b7098bf38 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14212,3 +14212,35 @@ especially -cover-package.")
 
 (define-public python2-nosexcover
   (package-with-python2 python-nosexcover))
+
+(define-public python-elasticsearch
+  (package
+    (name "python-elasticsearch")
+    (version "1.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "elasticsearch" version))
+        (sha256
+         (base32
+          "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-nosexcover" ,python-nosexcover)
+       ("python-pyaml" ,python-pyaml)
+       ("python-requests" ,python-requests)))
+    (propagated-inputs
+     `(("urllib3" ,python-urllib3)))
+    (arguments
+     ;; tests require the test_elasticsearch module but it is not distributed.
+     `(#:tests? #f))
+    (home-page "https://github.com/elastic/elasticsearch-py")
+    (synopsis "Low-level client for Elasticsearch")
+    (description "Official low-level client for Elasticsearch.  Its goal is to
+provide common ground for all Elasticsearch-related code in Python; because of
+this it tries to be opinion-free and very extendable.")
+    (license license:expat)))
+
+(define-public python2-elasticsearch
+  (package-with-python2 python-elasticsearch))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #14: 0013-gnu-python-dateutil-Update-to-2.6.0.patch --]
[-- Type: text/x-patch, Size: 1162 bytes --]

From b0e5e23d6b4b4955a1b848fbe5a4080f328304ea Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:35:27 +0200
Subject: [PATCH 13/37] gnu: python-dateutil: Update to 2.6.0.

* gnu/packages/python.scm (python-dateutil, python2-dateutil): Update to 2.6.0.
---
 gnu/packages/python.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index b7098bf38..19619b563 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1108,14 +1108,14 @@ Python file, so it can be easily copied into your project.")
 (define-public python-dateutil
   (package
     (name "python-dateutil")
-    (version "2.5.3")
+    (version "2.6.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "python-dateutil" version))
       (sha256
        (base32
-        "1v9j9fmf8g911yg6k01xa2db6dx3wv73zkk7fncsj7vagjqgs20l"))))
+        "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #15: 0014-gnu-Add-python-levenshtein.patch --]
[-- Type: text/x-patch, Size: 1760 bytes --]

From 88eb3daaa68edcbfb32401929a9369e61c6e0b64 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:44:38 +0200
Subject: [PATCH 14/37] gnu: Add python-levenshtein.

* gnu/packages/python.scm (python-levenshtein, python2-levenshtein):
New variables.
---
 gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 19619b563..cb7fe395d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14244,3 +14244,31 @@ this it tries to be opinion-free and very extendable.")
 
 (define-public python2-elasticsearch
   (package-with-python2 python-elasticsearch))
+
+(define-public python-levenshtein
+  (package
+    (name "python-levenshtein")
+    (version "0.12.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (pypi-uri "python-Levenshtein" version))
+      (sha256
+       (base32
+        "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/ztane/python-Levenshtein")
+    (synopsis "Fast computation of Levenshtein distance and string similarity")
+    (description
+     "The Levenshtein Python C extension module contains functions for fast computation of
+@enumerate
+@item Levenshtein (edit) distance, and edit operations
+@item string similarity
+@item approximate median strings, and generally string averaging
+@item string sequence and set similarity
+@end enumerate
+It supports both normal and Unicode strings.")
+    (license license:gpl2+)))
+
+(define-public python2-levenshtein
+  (package-with-python2 python-levenshtein))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #16: 0015-gnu-Add-python-scandir.patch --]
[-- Type: text/x-patch, Size: 1669 bytes --]

From 3df3adbede58211233be2e86c5a9e3f4dfd5dc8b Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:47:22 +0200
Subject: [PATCH 15/37] gnu: Add python-scandir.

* gnu/packages/python.scm (python-scandir, python2-scandir): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index cb7fe395d..ba350b874 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14272,3 +14272,27 @@ It supports both normal and Unicode strings.")
 
 (define-public python2-levenshtein
   (package-with-python2 python-levenshtein))
+
+(define-public python-scandir
+  (package
+    (name "python-scandir")
+    (version "1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "scandir" version))
+       (sha256
+        (base32 "0yjrgp0mxp3d8bjkq2m1ac2ys8n76wykksvgyjrnil9gr3fx7a5d"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/benhoyt/scandir")
+    (synopsis "Directory iteration function")
+    (description
+     "Directory iteration function like os.listdir(), except that instead of
+returning a list of bare filenames, it yields DirEntry objects that include
+file type and stat information along with the name.  Using scandir() increases
+the speed of os.walk() by 2-20 times (depending on the platform and file
+system) by avoiding unnecessary calls to os.stat() in most cases.")
+    (license license:bsd-3)))
+
+(define-public python2-scandir
+  (package-with-python2 python-scandir))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #17: 0016-gnu-Add-python2-stemming.patch --]
[-- Type: text/x-patch, Size: 1645 bytes --]

From 8b22294896282bf9bb5f555555aca5ecb51211d5 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 14:52:16 +0200
Subject: [PATCH 16/37] gnu: Add python2-stemming.

* gnu/packages/python.scm (python2-stemming): New variable.
---
 gnu/packages/python.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index ba350b874..9a2057dcc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14296,3 +14296,26 @@ system) by avoiding unnecessary calls to os.stat() in most cases.")
 
 (define-public python2-scandir
   (package-with-python2 python-scandir))
+
+(define-public python2-stemming
+  (package
+    (name "python2-stemming")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "stemming" version))
+       (sha256
+        (base32 "0ldwa24gnnxhniv0fhygkpc2mwgd93q10ag8rvzayv6hw418frsr"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2))
+    (home-page "https://bitbucket.org/mchaput/stemming/overview")
+    (synopsis "Python implementations of various stemming algorithms")
+    (description
+     "Python implementations of the Porter, Porter2, Paice-Husk, and Lovins
+stemming algorithms for English. These implementations are straightforward and
+efficient, unlike some Python versions of the same algorithms available on the
+Web. This package is an extraction of the stemming code included in the Whoosh
+search engine.")
+    (license license:public-domain)))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #18: 0017-gnu-Add-python-factory-boy.patch --]
[-- Type: text/x-patch, Size: 2014 bytes --]

From a68b5e8068a1478da32753dd0b8ed5aa11f6ce55 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 22:32:33 +0200
Subject: [PATCH 17/37] gnu: Add python-factory-boy.

* gnu/packages/python.scm (python-factory-boy, python2-factory-boy): New variables.
---
 gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9a2057dcc..8aaa4fbb0 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14319,3 +14319,35 @@ efficient, unlike some Python versions of the same algorithms available on the
 Web. This package is an extraction of the stemming code included in the Whoosh
 search engine.")
     (license license:public-domain)))
+
+(define-public python-factory-boy
+  (package
+    (name "python-factory-boy")
+    (version "2.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "factory_boy" version))
+       (sha256
+        (base32 "1fvin6san5xsjh2c4y18caj2lnmwxlylyqm8mh1yc6rp38wlwr56"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Tests are not included in the tarball.
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("faker" ,python-faker)))
+    (home-page "https://github.com/benhoyt/scandir")
+    (synopsis "Versatile test fixtures replacement")
+    (description
+     "Factory_boy is a fixtures replacement based on thoughtbot’s factory_girl.
+
+As a fixtures replacement tool, it aims to replace static, hard to maintain
+fixtures with easy-to-use factories for complex object.
+
+Instead of building an exhaustive test setup with every possible combination
+of corner cases, factory_boy allows you to use objects customized for the
+current test, while only declaring the test-specific fields")
+    (license license:expat)))
+
+(define-public python2-factory-boy
+  (package-with-python2 python-factory-boy))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #19: 0018-gnu-Add-python-translate-toolkit.patch --]
[-- Type: text/x-patch, Size: 2376 bytes --]

From 8ebcec81008d1722633a9ed509bd39901ffffb13 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 17:19:27 +0200
Subject: [PATCH 18/37] gnu: Add python-translate-toolkit.

* gnu/packages/python.scm (python-translate-toolkit, python2-translate-toolkit):
New variables.
---
 gnu/packages/python.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8aaa4fbb0..ae02c2c39 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14351,3 +14351,43 @@ current test, while only declaring the test-specific fields")
 
 (define-public python2-factory-boy
   (package-with-python2 python-factory-boy))
+
+(define-public python-translate-toolkit
+  (package
+    (name "python-translate-toolkit")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "translate-toolkit" version ".tar.bz2"))
+       (sha256
+        (base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-sphinx" ,python-sphinx)))
+    (propagated-inputs
+     `(("python-babel" ,python-babel)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-chardet" ,python-chardet)
+       ("python-diff-match-patch" ,python-diff-match-patch)
+       ("python-levenshtein" ,python-levenshtein)
+       ("python-lxml" ,python-lxml)
+       ("python-six" ,python-six)
+       ("python-vobject" ,python-vobject)
+       ("python-pyyaml" ,python-pyyaml)))
+    (arguments
+     ;; TODO: tests are not run, because they end with
+     ;; TypeError: parse() missing 2 required positional arguments: 'tree' and
+     ;; 'parse_funcs'
+     ;; during test setup.
+     `(#:tests? #f))
+    (home-page "http://toolkit.translatehouse.org")
+    (synopsis "Tools and API for translation and localization engineering")
+    (description
+     "Tools and API for translation and localization engineering.  It contains
+several utilities, as well as an API for building localization tools.")
+    (license license:gpl2+)))
+
+(define-public python2-translate-toolkit
+  (package-with-python2 python-translate-toolkit))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #20: 0019-gnu-Add-python-mysqlclient.patch --]
[-- Type: text/x-patch, Size: 1967 bytes --]

From 26d0ec32192fadd97a8e6145e5499e1061092d87 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 17:24:16 +0200
Subject: [PATCH 19/37] gnu: Add python-mysqlclient.

* gnu/packages/python.scm (python-mysqlclient, python2-mysqlclient): New variables.
---
 gnu/packages/python.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index ae02c2c39..9a3df386b 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14391,3 +14391,38 @@ several utilities, as well as an API for building localization tools.")
 
 (define-public python2-translate-toolkit
   (package-with-python2 python-translate-toolkit))
+
+(define-public python-mysqlclient
+  (package
+    (name "python-mysqlclient")
+    (version "1.3.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mysqlclient" version))
+       (sha256
+        (base32
+         "0qkj570x4rbsblji6frvsvp2v1ap32dqzj1lq62zp9515ffsyaj5"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("mariadb" ,mariadb)
+       ("nose" ,python-nose)
+       ("mock" ,python-mock)
+       ("py.test" ,python-pytest)))
+    (inputs
+     `(("mysql" ,mysql)
+       ("libz" ,zlib)
+       ("openssl" ,openssl)))
+    (home-page "https://github.com/PyMySQL/mysqlclient-python")
+    (synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
+    (description "MySQLdb is an interface to the popular MySQL database server
+for Python.  The design goals are:
+@enumerate
+@item Compliance with Python database API version 2.0 [PEP-0249],
+@item Thread-safety,
+@item Thread-friendliness (threads will not block each other).
+@end enumerate")
+    (license license:gpl2)))
+
+(define-public python2-mysqlclient
+  (package-with-python2 python-mysqlclient))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #21: 0020-gnu-Add-python-django-assets.patch --]
[-- Type: text/x-patch, Size: 2625 bytes --]

From 9f471b09f525f6b8e91a68d5e31023fcfd791a4e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:16:07 +0200
Subject: [PATCH 20/37] gnu: Add python-django-assets.

* gnu/packages/django.scm (python-django-assets, python2-django-assets):
New variables.
---
 gnu/packages/django.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 2038473f5..dad777bdf 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -245,3 +245,49 @@ templatetags and a full test suite.")
 
 (define-public python2-django-gravatar2
   (package-with-python2 python-django-gravatar2))
+
+(define-public python-django-assets
+  (package
+    (name "python-django-assets")
+    (version "0.12")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-assets" version))
+              (sha256
+               (base32
+                "0y0007fvkn1rdlj2g0y6k1cnkx53kxab3g8i85i0rd58k335p365"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-tests
+           (lambda _
+             (begin
+               ;; https://github.com/miracle2k/django-assets/issues/87
+               (substitute* "tests/__init__.py"
+                 (("settings.configure.*")
+                  (string-append
+                    "settings.configure(\n"
+                    "INSTALLED_APPS=['django_assets', "
+                    "'django.contrib.staticfiles'],\n"
+                    "TEMPLATES=[{'BACKEND': "
+                    "'django.template.backends.django.DjangoTemplates'}],\n"
+                    ")\n")))
+              ;; These tests fail
+              (substitute* "tests/test_django.py"
+                (("TestLoader") "NoTestLoader"))))))))
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("python-webassets" ,python-webassets)))
+    (home-page "https://github.com/miracle2k/django-assets")
+    (synopsis "Asset management for Django")
+    (description
+      "Asset management for Django, to compress and merge CSS and Javascript
+files.  Integrates the webassets library with Django, adding support for
+merging, minifying and compiling CSS and Javascript files.")
+    (license license:bsd-2)))
+
+(define-public python2-django-assets
+  (package-with-python2 python-django-assets))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #22: 0021-gnu-Add-python-django-jsonfield.patch --]
[-- Type: text/x-patch, Size: 1967 bytes --]

From 589ba386e1b87cdcfe0a64f8fb95f7de32c08038 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:18:30 +0200
Subject: [PATCH 21/37] gnu: Add python-django-jsonfield.

* gnu/packages/django.scm (python-django-jsonfield, python2-django-jsonfield):
New variables.
---
 gnu/packages/django.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index dad777bdf..7e66491ab 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -291,3 +291,34 @@ merging, minifying and compiling CSS and Javascript files.")
 
 (define-public python2-django-assets
   (package-with-python2 python-django-assets))
+
+(define-public python-django-jsonfield
+  (package
+    (name "python-django-jsonfield")
+    (version "1.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "jsonfield" version))
+              (sha256
+               (base32
+                "19x4lak0hg9c20r7mvf27w7i8r6i4sg2g0ypmlmp2665fnk76zvy"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-tests
+           (lambda _
+             (substitute* "jsonfield/tests.py"
+               (("django.forms.util") "django.forms.utils")))))))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/bradjasper/django-jsonfield")
+    (synopsis "Store validated JSON in your model")
+    (description
+      "django-jsonfield is a reusable Django field that allows you to store
+validated JSON in your model.  It silently takes care of serialization.  To
+use, simply add the field to one of your models.")
+    (license license:expat)))
+
+(define-public python2-django-jsonfield
+  (package-with-python2 python-django-jsonfield))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #23: 0022-gnu-Add-python-dj-database-url.patch --]
[-- Type: text/x-patch, Size: 1814 bytes --]

From 3db79a588ec629297e928c9df5488d5e9743bee1 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:28:37 +0200
Subject: [PATCH 22/37] gnu: Add python-dj-database-url.

* gnu/packages/django.scm (python-dj-database-url, python2-dj-database-url):
New variables.
---
 gnu/packages/django.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 7e66491ab..903885061 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -322,3 +322,28 @@ use, simply add the field to one of your models.")
 
 (define-public python2-django-jsonfield
   (package-with-python2 python-django-jsonfield))
+
+(define-public python-dj-database-url
+  (package
+    (name "python-dj-database-url")
+    (version "0.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "dj-database-url" version))
+              (sha256
+               (base32
+                "024zbkc5rli4hia9lz9g8kf1zxhb2gwawj5abf67i7gf8n22v0x6"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/kennethreitz/dj-database-url")
+    (synopsis "Use Database URLs in your Django Application")
+    (description
+      "This simple Django utility allows you to utilize the 12factor inspired
+DATABASE_URL environment variable to configure your Django application.
+
+The dj_database_url.config method returns a Django database connection
+dictionary, populated with all the data specified in your URL. There is also a
+conn_max_age argument to easily enable Django’s connection pool.")
+    (license license:bsd-2)))
+
+(define-public python2-dj-database-url
+  (package-with-python2 python-dj-database-url))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #24: 0023-gnu-Add-python-django-bulk-update.patch --]
[-- Type: text/x-patch, Size: 1984 bytes --]

From 7215e6f39541472056569becf6f9c79f9179f607 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sun, 23 Apr 2017 13:31:08 +0200
Subject: [PATCH 23/37] gnu: Add python-django-bulk-update.

* gnu/packages/django.scm (python-django-bulk-update, python2-django-bulk-update):
New variables.
---
 gnu/packages/django.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 903885061..4a45961f0 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -347,3 +347,33 @@ conn_max_age argument to easily enable Django’s connection pool.")
 
 (define-public python2-dj-database-url
   (package-with-python2 python-dj-database-url))
+
+(define-public python-django-bulk-update
+  (package
+    (name "python-django-bulk-update")
+    (version "1.1.10")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-bulk-update" version))
+              (sha256
+               (base32
+                "0mbng9m7swfc0dnidipbzlxfhlfjrv755dlnha5s4m9mgdxb1fhc"))))
+    (build-system python-build-system)
+    (arguments
+     ;; tests don't support django 1.10, but the module seems to work.
+     `(#:tests? #f))
+    (native-inputs
+     `(("six" ,python-six)
+       ("jsonfield" ,python-django-jsonfield)
+       ("python-dj-database-url" ,python-dj-database-url)))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/aykut/django-bulk-update")
+    (synopsis "Simple bulk update over Django ORM or with helper function")
+    (description
+      "Simple bulk update over Django ORM or with helper function.  This
+project aims to bulk update given objects using one query over Django ORM.")
+    (license license:expat)))
+
+(define-public python2-django-bulk-update
+  (package-with-python2 python-django-bulk-update))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #25: 0024-gnu-Add-python-django-contact-form.patch --]
[-- Type: text/x-patch, Size: 2182 bytes --]

From 4398226287a881dd9369cba2b4fc0bf5f4cdb313 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 18:51:24 +0200
Subject: [PATCH 24/37] gnu: Add python-django-contact-form.

* gnu/packages/django.scm (python-django-contact-form, python2-django-contact-form):
New variables.
---
 gnu/packages/django.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 4a45961f0..8e4b986c9 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -377,3 +377,38 @@ project aims to bulk update given objects using one query over Django ORM.")
 
 (define-public python2-django-bulk-update
   (package-with-python2 python-django-bulk-update))
+
+(define-public python-django-contact-form
+  (package
+    (name "python-django-contact-form")
+    (version "1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-contact-form" version))
+              (sha256
+               (base32
+                "0az590y56k5ahv4sixrkn54d3a8ig2q2z9pl6s3m4f533mx2gj17"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             ;; the next version will need "make test"
+             (and (zero? (system* "flake8" "contact_form"))
+                  (zero? (system* "coverage" "run" "contact_form/runtests.py"))
+                  (zero? (system* "coverage" "report" "-m" "--fail-under" "0"))))))))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-flake8" ,python-flake8)))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/ubernostrum/django-contact-form")
+    (synopsis "Contact form for Django")
+    (description
+      "This application provides simple, extensible contact-form functionality
+for Django sites.")
+    (license license:bsd-3)))
+
+(define-public python2-django-contact-form
+  (package-with-python2 python-django-contact-form))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #26: 0025-gnu-Add-python-django-contrib-comments.patch --]
[-- Type: text/x-patch, Size: 1811 bytes --]

From 53fc60b9d840aeb1ca9ceb9dd9e615dd139ebddb Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:01:33 +0200
Subject: [PATCH 25/37] gnu: Add python-django-contrib-comments.

* gnu/packages/django.scm (python-django-contrib-comments,
python2-django-contrib-comments): New variables.
---
 gnu/packages/django.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 8e4b986c9..0e16c54b1 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -412,3 +412,28 @@ for Django sites.")
 
 (define-public python2-django-contact-form
   (package-with-python2 python-django-contact-form))
+
+(define-public python-django-contrib-comments
+  (package
+    (name "python-django-contrib-comments")
+    (version "1.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-contrib-comments" version))
+              (sha256
+               (base32
+                "0bxsgw8jrkhg6r5s0z6ksfi4w8yknaqb1s9acmxd9pm3pnsnp5kx"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/django/django-contrib-comments")
+    (synopsis "Comments framework")
+    (description
+      "Django used to include a comments framework; since Django 1.6 it's been
+separated to a separate project.  This is that project.  This framework can be
+used to attach comments to any model, so you can use it for comments on blog
+entries, photos, book chapters, or anything else.")
+    (license license:bsd-3)))
+
+(define-public python2-django-contrib-comments
+  (package-with-python2 python-django-contrib-comments))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #27: 0026-gnu-Add-python-django-overextends.patch --]
[-- Type: text/x-patch, Size: 2124 bytes --]

From c6cf2e90b8ef39a01e21301c0140f4cace2de7d2 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:08:11 +0200
Subject: [PATCH 26/37] gnu: Add python-django-overextends.

* gnu/packages/django.scm (python-django-overextends, python2-django-overextends):
New variables.
---
 gnu/packages/django.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 0e16c54b1..05d9b75ed 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -437,3 +437,37 @@ entries, photos, book chapters, or anything else.")
 
 (define-public python2-django-contrib-comments
   (package-with-python2 python-django-contrib-comments))
+
+(define-public python-django-overextends
+  (package
+    (name "python-django-overextends")
+    (version "0.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-overextends" version))
+              (sha256
+               (base32
+                "0qc2pcf3i56pmfxh2jw7k3pgljd8xzficmkl2541n7bkcbngqfzm"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (zero? (system* "./test_project/manage.py" "test")))))))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (native-inputs
+     `(("sphinx-me" ,python-sphinx-me)))
+    (home-page "https://github.com/stephenmcd/django-overextends")
+    (synopsis "Circular template inheritance")
+    (description
+      "A Django reusable app providing the overextends template tag, a drop-in
+replacement for Django's extends tag, which allows you to use circular template
+inheritance.  The primary use-case for overextends is to simultaneously
+override and extend templates from other reusable apps, in your own Django
+project.")
+    (license license:bsd-2)))
+
+(define-public python2-django-overextends
+  (package-with-python2 python-django-overextends))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #28: 0027-gnu-Add-python-hiredis.patch --]
[-- Type: text/x-patch, Size: 1521 bytes --]

From 1b9cc7bae05b91cd9110dbcdffaefe7e39f9d0d4 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:11:48 +0200
Subject: [PATCH 27/37] gnu: Add python-hiredis.

* gnu/packages/python.scm (python-hiredis, python2-hiredis): New variables.
---
 gnu/packages/python.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9a3df386b..db5192e15 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14426,3 +14426,27 @@ for Python.  The design goals are:
 
 (define-public python2-mysqlclient
   (package-with-python2 python-mysqlclient))
+
+(define-public python-hiredis
+  (package
+    (name "python-hiredis")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "hiredis" version))
+       (sha256
+        (base32
+         "1dfm2k9l9zar9nw9fwmm74zrgraxdxs04vx9li56fjcf289qx5fa"))))
+    (build-system python-build-system)
+    (arguments
+     ;; no tests
+     `(#:tests? #f))
+    (home-page "https://github.com/redis/hiredis-py")
+    (synopsis "Python extension that wraps protocol parsing code in hiredis")
+    (description "Python-hiredis is a python extension that wraps protocol
+parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies.")
+    (license license:bsd-3)))
+
+(define-public python2-hiredis
+  (package-with-python2 python-hiredis))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #29: 0028-gnu-Add-python-fakeredis.patch --]
[-- Type: text/x-patch, Size: 1843 bytes --]

From c27dce21f4fdd65f567dcf8907e1ff5e16598049 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sun, 23 Apr 2017 16:37:02 +0200
Subject: [PATCH 28/37] gnu: Add python-fakeredis.

* gnu/packages/python.scm (python-fakeredis, python2-fakeredis): New variables.
---
 gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index db5192e15..c3a30991b 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -14450,3 +14450,31 @@ parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies."
 
 (define-public python2-hiredis
   (package-with-python2 python-hiredis))
+
+(define-public python-fakeredis
+  (package
+    (name "python-fakeredis")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fakeredis" version))
+       (sha256
+        (base32
+         "0zncahj3byyasyfx9i7k991ph0n0lq8v3a21pqri5qxn9564bk9r"))))
+    (build-system python-build-system)
+    (arguments
+     ;; no tests
+     `(#:tests? #f))
+    (home-page "https://github.com/jamesls/fakeredis")
+    (synopsis "Fake implementation of redis API for testing purposes.")
+    (description "Fakeredis is a pure python implementation of the redis-py
+python client that simulates talking to a redis server.  This was created for a
+single purpose: to write unittests.  Setting up redis is not hard, but many time
+ you want to write unittests that do not talk to an external server (such as
+redis).  This module now allows tests to simply use this module as a reasonable
+substitute for redis.")
+    (license license:bsd-3)))
+
+(define-public python2-fakeredis
+  (package-with-python2 python-fakeredis))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #30: 0029-gnu-Add-python-django-redis.patch --]
[-- Type: text/x-patch, Size: 2336 bytes --]

From cc99601e8ce5ab658af2cadc974e615d4ec15047 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sun, 23 Apr 2017 16:54:53 +0200
Subject: [PATCH 29/37] gnu: Add python-django-redis.

* gnu/packages/django.scm (python-django-redis, python2-django-redis):
New variables.
---
 gnu/packages/django.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 05d9b75ed..59f156234 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -25,6 +25,7 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages python))
 
 (define-public python-django
@@ -471,3 +472,40 @@ project.")
 
 (define-public python2-django-overextends
   (package-with-python2 python-django-overextends))
+
+(define-public python-django-redis
+  (package
+    (name "python-django-redis")
+    (version "4.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-redis" version))
+              (sha256
+               (base32
+                "0yyyxv8n9l9dhs893jsqwg2cxqkkc79g719n9dzzzqgkzialv1c1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (and (zero? (system* "redis-server" "--daemonize" "yes"))
+                  (with-directory-excursion "tests"
+                    (zero? (system* "python" "runtests.py")))))))))
+    (native-inputs
+     `(("python-fakeredis" ,python-fakeredis)
+       ("python-hiredis" ,python-hiredis)
+       ("python-mock" ,python-mock)
+       ("python-msgpack" ,python-msgpack)
+       ("redis" ,redis)))
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("python-redis" ,python-redis)))
+    (home-page "https://github.com/niwibe/django-redis")
+    (synopsis "Full featured redis cache backend for Django")
+    (description
+      "Full featured redis cache backend for Django.")
+    (license license:bsd-3)))
+
+(define-public python2-django-redis
+  (package-with-python2 python-django-redis))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #31: 0030-gnu-Add-python-django-rq.patch --]
[-- Type: text/x-patch, Size: 2078 bytes --]

From 5e7070140b6af6c26c140d495edcfc89d88f77e5 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:14:03 +0200
Subject: [PATCH 30/37] gnu: Add python-django-rq.

* gnu/packages/django.scm (python-django-rq, python2-django-rq): New variables.
---
 gnu/packages/django.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 59f156234..2527a4a03 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -509,3 +509,39 @@ project.")
 
 (define-public python2-django-redis
   (package-with-python2 python-django-redis))
+
+(define-public python-django-rq
+  (package
+    (name "python-django-rq")
+    (version "0.9.4")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-rq" version))
+              (sha256
+               (base32
+                "04v8ilfdp10bk31fxgh4cn083gsn5m06342cnpm5d10nd8hc0vky"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (and (zero? (system* "redis-server" "--daemonize" "yes"))
+                  (zero? (system* "django-admin.py" "test" "django_rq"
+                                  "--settings=django_rq.test_settings"
+                                  "--pythonpath="))))))))
+    (native-inputs
+     `(("redis" ,redis)))
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("python-rq" ,python-rq)))
+    (home-page "https://github.com/ui/django-rq")
+    (synopsis "Django integration with RQ")
+    (description
+      "Django integration with RQ, a Redis based Python queuing library.
+Django-RQ is a simple app that allows you to configure your queues in django's
+settings.py and easily use them in your project.")
+    (license license:expat)))
+
+(define-public python2-django-rq
+  (package-with-python2 python-django-rq))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #32: 0031-gnu-Add-python-django-sortedm2m.patch --]
[-- Type: text/x-patch, Size: 1761 bytes --]

From 125a0f3c11f4670f237b881b7dc563b47fbe5cb1 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:18:02 +0200
Subject: [PATCH 31/37] gnu: Add python-django-sortedm2m.

* gnu/packages/django.scm (python-django-sortedm2m, python2-django-sortedm2m):
New variables.
---
 gnu/packages/django.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 2527a4a03..a7587988c 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -545,3 +545,30 @@ settings.py and easily use them in your project.")
 
 (define-public python2-django-rq
   (package-with-python2 python-django-rq))
+
+(define-public python-django-sortedm2m
+  (package
+    (name "python-django-sortedm2m")
+    (version "1.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-sortedm2m" version))
+              (sha256
+               (base32
+                "0axf765i7b3c2s83nlph47asi8s071dhq8l7y382v1pw785s22vi"))))
+    (build-system python-build-system)
+    (arguments
+     ;; no tests.
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/gregmuellegger/django-sortedm2m")
+    (synopsis "drop-in replacement for django's own ManyToManyField")
+    (description
+      "Sortedm2m is a drop-in replacement for django's own ManyToManyField.
+The provided SortedManyToManyField behaves like the original one but remembers
+the order of added relations.")
+    (license license:bsd-3)))
+
+(define-public python2-django-sortedm2m
+  (package-with-python2 python-django-sortedm2m))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #33: 0032-gnu-Add-python-django-appconf.patch --]
[-- Type: text/x-patch, Size: 1829 bytes --]

From 5c4ad444814f3790ac296c954fdde73673c67afb Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:18:46 +0200
Subject: [PATCH 32/37] gnu: Add python-django-appconf.

* gnu/packages/django.scm (python-django-appconf, python2-django-appconf):
New variables.
---
 gnu/packages/django.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index a7587988c..562025968 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -572,3 +572,29 @@ the order of added relations.")
 
 (define-public python2-django-sortedm2m
   (package-with-python2 python-django-sortedm2m))
+
+(define-public python-django-appconf
+  (package
+    (name "python-django-appconf")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-appconf" version))
+              (sha256
+               (base32
+                "0qdjdx35g66xjsc50v0c5h3kg6njs8df33mbjx6j4k1vd3m9lkba"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/django-compressor/django-appconf")
+    (synopsis "Handle configuration defaults of packaged Django apps")
+    (description
+      "This app precedes Django's own AppConfig classes that act as \"objects
+[to] store metadata for an application\" inside Django's app loading mechanism.
+In other words, they solve a related but different use case than
+django-appconf and can't easily be used as a replacement.  The similarity in
+name is purely coincidental.")
+    (license license:bsd-3)))
+
+(define-public python2-django-appconf
+  (package-with-python2 python-django-appconf))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #34: 0033-gnu-Add-python-django-statici18n.patch --]
[-- Type: text/x-patch, Size: 1639 bytes --]

From dc5134cba89e0f24e566a7c5f38bfd63ef9e3509 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 19:19:19 +0200
Subject: [PATCH 33/37] gnu: Add python-django-statici18n.

* gnu/packages/django.scm (python-django-statici18n, python2-django-statici18n):
New variables.
---
 gnu/packages/django.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 562025968..472cf70aa 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -598,3 +598,27 @@ name is purely coincidental.")
 
 (define-public python2-django-appconf
   (package-with-python2 python-django-appconf))
+
+(define-public python-django-statici18n
+  (package
+    (name "python-django-statici18n")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "django-statici18n" version))
+              (sha256
+               (base32
+                "0alcf4g1nv69njhq5k3qw4mfl2k6dc18bik5nk0g1mnp3m8zyz7k"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-django" ,python-django)
+       ("django-appconf" ,python-django-appconf)))
+    (home-page "https://github.com/zyegfryed/django-statici18n")
+    (synopsis "Generate JavaScript catalog to static files")
+    (description
+      "A Django app that provides helper for generating JavaScript catalog to
+static files.")
+    (license license:bsd-3)))
+
+(define-public python2-django-statici18n
+  (package-with-python2 python-django-statici18n))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #35: 0034-gnu-python-pytest-django-Update-to-3.1.2.patch --]
[-- Type: text/x-patch, Size: 1617 bytes --]

From b14b147fc08b10c85f3133e6924c5d1fda253613 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:46:03 +0200
Subject: [PATCH 34/37] gnu: python-pytest-django: Update to 3.1.2.

* gnu/packages/django.scm (python-pytest-django, python2-pytest-django):
Update to 3.1.2.
---
 gnu/packages/django.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 472cf70aa..7c2abc243 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -129,13 +129,13 @@ with arguments to the field constructor.")
 (define-public python-pytest-django
   (package
     (name "python-pytest-django")
-    (version "2.9.1")
+    (version "3.1.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pytest-django" version))
               (sha256
                (base32
-                "1mmc7zsz3dlhs6sx4sppkj1vgshabi362r1a8b8wpj1qfximpqcb"))))
+                "02932m2sr8x22m4az8syr8g835g4ak77varrnw71n6xakmdcr303"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ; FIXME: How to run tests?
@@ -144,7 +144,7 @@ with arguments to the field constructor.")
          (add-after 'unpack 'patch-setuppy
            (lambda _
              (substitute* "setup.py"
-                          (("setuptools_scm==1.8.0") "setuptools_scm"))
+                          (("setuptools_scm==1.11.1") "setuptools_scm"))
              #t)))))
     (native-inputs
      `(("python-django" ,python-django)
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #36: 0035-gnu-python-pytest-cov-Update-to-2.4.0.patch --]
[-- Type: text/x-patch, Size: 1121 bytes --]

From 16c40374bf4da452f995c914996fbf2a997cedef Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:52:16 +0200
Subject: [PATCH 35/37] gnu: python-pytest-cov: Update to 2.4.0.

* gnu/packages/python.scm (python-pytest-cov, python2-pytest-cov): Update to
2.4.0.
---
 gnu/packages/python.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index c3a30991b..f7f29b255 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1843,14 +1843,14 @@ and many external plugins.")
 (define-public python-pytest-cov
   (package
     (name "python-pytest-cov")
-    (version "2.2.1")
+    (version "2.4.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pytest-cov" version))
         (sha256
          (base32
-          "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8"))))
+          "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #37: 0036-gnu-Fix-python2-django-allauth.patch --]
[-- Type: text/x-patch, Size: 1408 bytes --]

From e19c9850640946c71e5d0eb17474e24a76da7175 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 21:09:47 +0200
Subject: [PATCH 36/37] gnu: Fix python2-django-allauth.

* gnu/packages/python.scm (python-openid)[properties]: Use python2-variant.
---
 gnu/packages/django.scm | 1 +
 gnu/packages/python.scm | 1 +
 2 files changed, 2 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 7c2abc243..2a661c03f 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -222,6 +222,7 @@ account authentication.")
 
 (define-public python2-django-allauth
   (package-with-python2 python-django-allauth))
+    
 
 (define-public python-django-gravatar2
   (package
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f7f29b255..7519d51fc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5521,6 +5521,7 @@ features useful for text console applications.")
         (base32
          "1x3nh3fycqfn43jp5j5pb4q4y2jxp4mdka4absaa3bc0078qd758"))))
     (build-system python-build-system)
+    (properties `((python2-variant . ,(delay python2-openid))))
     (home-page "https://github.com/necaris/python3-openid")
     (synopsis "OpenID support for servers and consumers")
     (description "This library provides OpenID authentication for Python, both
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #38: 0037-gnu-Add-pootle.patch --]
[-- Type: text/x-patch, Size: 3752 bytes --]

From 4ea9d757a191fe27b3a34a7edbd181e4d590f91d Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sat, 22 Apr 2017 23:11:07 +0200
Subject: [PATCH 37/37] gnu: Add pootle.

* gnu/packages/django.scm (pootle): New variable.
---
 gnu/packages/django.scm | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 2a661c03f..6cce56776 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -623,3 +623,75 @@ static files.")
 
 (define-public python2-django-statici18n
   (package-with-python2 python-django-statici18n))
+
+(define-public pootle
+  (package
+    (name "pootle")
+    (version "2.8.0rc5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "Pootle" version ".tar.bz2"))
+        (sha256
+         (base32
+          "0m6qcpkcy22dk3ad5y2k8851kqg2w6vrkywgy4vabwbacd7r1mvn"))))
+    (build-system python-build-system)
+    (arguments
+     `(; pootle supports only python2.
+       #:python ,python-2
+       ;; tests are not run and fail with "pytest_pootle/data/po/.tmp: No such
+       ;; file or directory". If we create this directory,
+       ;; pytest_pootle/data/po/terminology.po is missing.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-requirements
+           (lambda _
+             (substitute* "Pootle.egg-info/requires.txt"
+               (("1.7.3") "1.8.0")
+               (("2.0.0") "2.1.0"))
+             (substitute* "requirements/tests.txt"
+               (("==3.0.6") ">=3.0.6"))
+             (substitute* "requirements/base.txt"
+               (("1.7.3") "1.8.0")
+               (("2.0.0") "2.1.0")))))))
+    (propagated-inputs
+     `(("django-allauth" ,python2-django-allauth)
+       ("django-assets" ,python2-django-assets)
+       ("django-bulk-update" ,python2-django-bulk-update)
+       ("django-contact-form" ,python2-django-contact-form)
+       ("django-contrib-comments" ,python2-django-contrib-comments)
+       ("django-overextends" ,python2-django-overextends)
+       ("django-redis" ,python2-django-redis)
+       ("django-rq" ,python2-django-rq)
+       ("django-sortedm2m" ,python2-django-sortedm2m)
+       ("django-statici18n" ,python2-django-statici18n)
+       ("babel" ,python2-babel)
+       ("cssmin" ,python2-cssmin)
+       ("diff-match-patch" ,python2-diff-match-patch)
+       ("dirsync" ,python2-dirsync)
+       ("elasticsearch" ,python2-elasticsearch)
+       ("jsonfield" ,python2-django-jsonfield)
+       ("lxml" ,python2-lxml)
+       ("dateutil" ,python2-dateutil)
+       ("levenshtein" ,python2-levenshtein)
+       ("mysqlclient" ,python2-mysqlclient)
+       ("psycopg2" ,python2-psycopg2)
+       ("pytz" ,python2-pytz)
+       ("rq" ,python2-rq)
+       ("scandir" ,python2-scandir)
+       ("stemming" ,python2-stemming)
+       ("translate-toolkit" ,python2-translate-toolkit)))
+    (native-inputs
+     `(("python2-pytest-warnings" ,python2-pytest-warnings)
+       ("python2-pytest-django" ,python2-pytest-django)
+       ("python2-pytest-catchlog" ,python2-pytest-catchlog)
+       ("python2-pytest-cov" ,python2-pytest-cov)
+       ("python2-factory-boy" ,python2-factory-boy)))
+    (home-page "http://pootle.translatehouse.org/")
+    (synopsis "Community localization server")
+    (description
+      "Pootle is an online translation and localization tool.  It works to
+lower the barrier of entry, providing tools to enable teams to work towards
+higher quality while welcoming newcomers.")
+    (license license:gpl3+)))
-- 
2.12.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#26613: Add pootle
  2017-04-23 15:25   ` Julien Lepiller
@ 2017-05-08 20:13     ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2017-05-08 20:13 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 26613

Julien Lepiller <julien@lepiller.eu> skribis:

>> 
>> [other suggestions]
>>
>
> All done too, thanks :)

37 patches, woow.  :-)

As a rule of thumb, if you addressed all of Leo’s comments and
everything passes ‘guix lint’ and ‘guix build’, you can go ahead and
push!

Thank you.

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-05-08 20:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-22 21:13 bug#26613: Add pootle Julien Lepiller
2017-04-23  0:33 ` Leo Famulari
2017-04-23 15:25   ` Julien Lepiller
2017-05-08 20:13     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).