diff options
Diffstat (limited to 'gnu/packages/django.scm')
-rw-r--r-- | gnu/packages/django.scm | 273 |
1 files changed, 242 insertions, 31 deletions
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 0cf414ad41..2370de62f5 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Nikita <nikita@n0.is> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> @@ -32,7 +32,10 @@ #:use-module (gnu packages base) #:use-module (gnu packages databases) #:use-module (gnu packages check) + #:use-module (gnu packages geo) #:use-module (gnu packages python) + #:use-module (gnu packages python-compression) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sphinx) @@ -42,13 +45,13 @@ (define-public python-django (package (name "python-django") - (version "1.11.28") + (version "1.11.29") (source (origin (method url-fetch) (uri (pypi-uri "Django" version)) (sha256 (base32 - "1ss1jyip7mlbfjn27m0j6wx80s8h4ksg6g5annkgwigp8xgy6g5k")))) + "171jsi54fbnxzi2n3l4hkdmmwfnfrwacs180rw59l0bqcvxsw022")))) (build-system python-build-system) (arguments '(#:modules ((srfi srfi-1) @@ -82,9 +85,6 @@ ;; TODO: Install extras/django_bash_completion. (native-inputs `(("tzdata" ,tzdata-for-tests) - ;; bcrypt and argon2-cffi are extra requirements not yet in guix - ;;("python-argon2-cffi" ,python-argon2-cffi) ; >= 16.1.0 - ;;("python-bcrypt" ,python-bcrypt) ; not py-bcrypt! ;; Remaining packages are test requirements taken from ;; tests/requirements/py3.txt ("python-docutils" ,python-docutils) @@ -98,7 +98,9 @@ ("python-sqlparse" ,python-sqlparse) ("python-tblib" ,python-tblib))) (propagated-inputs - `(("python-pytz" ,python-pytz))) + `(("python-argon2-cffi" ,python-argon2-cffi) + ("python-bcrypt" ,python-bcrypt) + ("python-pytz" ,python-pytz))) (home-page "https://www.djangoproject.com/") (synopsis "High-level Python Web framework") (description @@ -132,7 +134,7 @@ to the @dfn{don't repeat yourself} (DRY) principle.") (method git-fetch) ;; Fetch from the git repository, so that the tests can be run. (uri (git-reference - (url "https://github.com/django-extensions/django-extensions.git") + (url "https://github.com/django-extensions/django-extensions") (commit version))) (file-name (string-append name "-" version)) (sha256 @@ -191,6 +193,31 @@ with arguments to the field constructor.") (define-public python2-django-simple-math-captcha (package-with-python2 python-django-simple-math-captcha)) +(define-public python-django-classy-tags + (package + (name "python-django-classy-tags") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django-classy-tags" version)) + (sha256 + (base32 + "1cayqddvxd5prhybqi77lif2z4j7mmfmxgc61pq9i82q5gy2asmd")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; Test script not distributed with release. + (propagated-inputs + `(("python-django" ,python-django) + ("python-six" ,python-six))) + (home-page "https://github.com/divio/django-classy-tags") + (synopsis "Class based template tags for Django") + (description + "@code{django-classy-tags} is an approach at making writing template tags +in Django easier, shorter and more fun. It provides an extensible argument +parser which reduces most of the boiler plate code you usually have to write +when coding custom template tags.") + (license license:bsd-3))) + (define-public python-django-taggit (package (name "python-django-taggit") @@ -281,6 +308,54 @@ useful tools for testing Django applications and projects.") (define-public python2-pytest-django (package-with-python2 python-pytest-django)) +(define-public python-django-haystack + (package + (name "python-django-haystack") + (version "2.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django-haystack" version)) + (sha256 + (base32 + "1302fqsrx8w474xk5cmnmg3hjqfprlxnjg9qlg86arsr4v4vqm4b")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'loosen-verion-restrictions + (lambda _ + (substitute* "setup.py" + (("geopy.*") "geopy',\n")) + #t)) + (add-before 'check 'set-gdal-lib-path + (lambda* (#:key inputs #:allow-other-keys) + (setenv "GDAL_LIBRARY_PATH" + (string-append (assoc-ref inputs "gdal") + "/lib")) + #t))) + #:tests? #f)) ; OSError: libgdal.so.27: cannot open shared object file + (propagated-inputs + `(("python-django" ,python-django))) + (native-inputs + `(("gdal" ,gdal) + ("python-coverage" ,python-coverage) + ("python-dateutil" ,python-dateutil) + ("python-geopy" ,python-geopy) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-requests" ,python-requests) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-pysolr" ,python-pysolr) + ("python-whoosh" ,python-whoosh))) + (home-page "http://haystacksearch.org/") + (synopsis "Pluggable search for Django") + (description "Haystack provides modular search for Django. It features a +unified, familiar API that allows you to plug in different search backends +(such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify +your code.") + (license license:bsd-3))) + (define-public python-django-filter (package (name "python-django-filter") @@ -318,36 +393,23 @@ them do this.") (define-public python-django-allauth (package (name "python-django-allauth") - (version "0.39.1") + (version "0.40.0") (source (origin (method url-fetch) (uri (pypi-uri "django-allauth" version)) (sha256 (base32 - "17l0acpr3cihdndzccjhgv58f9z170v2qwx7w0b8w6235x646i24")))) + "12f5gjidcpb7a0d1f601k0c5dcdmb6fg9sfn7xn5j8zfsg29y63a")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - ;; TODO: Tagging the tests requiring the web could be done upstream. - (add-before 'check 'skip-test-requiring-network-access - (lambda _ - (substitute* "allauth/socialaccount/providers/openid/tests.py" - (("import override_settings") "import tag, override_settings") - (("def test_login") - "@tag('requires-web') - def test_login")))) (replace 'check (lambda _ - ;; TODO: investigate why this test fails - (delete-file "allauth/socialaccount/providers/cern/tests.py") (setenv "DJANGO_SETTINGS_MODULE" "test_settings") - (invoke "django-admin" - "test" - "allauth" - "--verbosity=2" - "--exclude-tag=requires-web")))))) + (invoke "django-admin" "test" "allauth.tests" + "--pythonpath=.")))))) (propagated-inputs `(("python-openid" ,python-openid) ("python-requests" ,python-requests) @@ -375,7 +437,7 @@ account authentication.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/jazzband/django-debug-toolbar.git") + (url "https://github.com/jazzband/django-debug-toolbar") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -483,7 +545,7 @@ merging, minifying and compiling CSS and Javascript files.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/niwinz/django-jinja.git") + (url "https://github.com/niwinz/django-jinja") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -572,6 +634,25 @@ 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-picklefield + (package + (name "python-django-picklefield") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django-picklefield" version)) + (sha256 + (base32 + "0imncys5s3vsy2q79nn7k5d670da1xgmcr9gmhn06fry6ibf39b7")))) + (build-system python-build-system) + (propagated-inputs `(("python-django" ,python-django))) + (native-inputs `(("python-tox" ,python-tox))) + (home-page "https://github.com/gintas/django-picklefield") + (synopsis "Pickled object field for Django") + (description "Pickled object field for Django") + (license license:expat))) + (define-public python-django-bulk-update (package (name "python-django-bulk-update") @@ -794,7 +875,7 @@ support, and optional data-URI image and font embedding.") (invoke "redis-server" "--daemonize" "yes") (invoke "django-admin.py" "test" "django_rq" "--settings=django_rq.tests.settings" - "--pythonpath=")))))) + "--pythonpath=.")))))) (native-inputs `(("python-mock" ,python-mock) ("redis" ,redis))) @@ -812,6 +893,41 @@ settings.py and easily use them in your project.") (define-public python2-django-rq (package-with-python2 python-django-rq)) +(define-public python-django-q + (package + (name "python-django-q") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django-q" version)) + (sha256 + (base32 + "0ac3rjxv37bn97a62ly8b7qvbv765z6paiinzpwxx83nal2icc42")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "DJANGO_SETTINGS_MODULE" "django_q.tests.settings") + (invoke "django-admin" "test" "django_q.tests" + "--pythonpath=.")))))) + (propagated-inputs + `(("python-arrow" ,python-arrow) + ("python-blessed" ,python-blessed) + ("python-django" ,python-django) + ("python-django-picklefield" ,python-django-picklefield))) + (native-inputs + `(("python-django-redis" ,python-django-redis) + ("python-pytest-django" ,python-pytest-django))) + (home-page "https://django-q.readthedocs.io/") + (synopsis "Multiprocessing distributed task queue for Django") + (description + "Django Q is a native Django task queue, scheduler and worker application +using Python multiprocessing.") + (license license:expat))) + (define-public python-django-sortedm2m (package (name "python-django-sortedm2m") @@ -965,24 +1081,45 @@ higher quality while welcoming newcomers.") (define-public python-django-tagging (package (name "python-django-tagging") - (version "0.4.6") + (version "0.5.0") (source (origin (method url-fetch) (uri (pypi-uri "django-tagging" version)) (sha256 (base32 - "0s7b4v45j783yaxs7rni10k24san0ya77nqz4s7zdf3jhfpk42r1")))) + "13afxx30chssclxzd9gqnvwm9qyrdpnlbs6iswdfa18phfj8zmi8")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "DJANGO_SETTINGS_MODULE" "tagging.tests.settings") + (invoke "django-admin" "test" "--pythonpath=.")))))) + (inputs + `(("python-django" ,python-django))) (home-page "https://github.com/Fantomas42/django-tagging") (synopsis "Generic tagging application for Django") (description "This package provides a generic tagging application for Django projects, which allows association of a number of tags with any @code{Model} instance and makes retrieval of tags simple.") + (properties `((python2-variant . ,(delay python2-django-tagging)))) (license license:bsd-3))) (define-public python2-django-tagging - (package-with-python2 python-django-tagging)) + (let ((base (package-with-python2 + (strip-python2-variant python-django-tagging)))) + (package + (inherit base) + (version "0.4.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django-tagging" version)) + (sha256 + (base32 + "0s7b4v45j783yaxs7rni10k24san0ya77nqz4s7zdf3jhfpk42r1"))))))) (define-public python-djangorestframework (package @@ -1008,6 +1145,35 @@ Django projects, which allows association of a number of tags with any provides features like a web browseable API and authentication policies.") (license license:bsd-2))) +(define-public python-django-sekizai + (package + (name "python-django-sekizai") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django-sekizai" version)) + (sha256 + (base32 + "1nc4sv109valdn6azmgm2j01k7khxy2wnji84z63x7fxsikfdxp2")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; Tests not included with release. + (propagated-inputs + `(("python-django" ,python-django) + ("python-django-classy-tags" ,python-django-classy-tags) + ("python-six" ,python-six))) + (home-page "https://github.com/divio/django-sekizai") + (synopsis "Template blocks for Django projects") + (description "Sekizai means blocks in Japanese, and thats what this app +provides. A fresh look at blocks. With @code{django-sekizai} you can define +placeholders where your blocks get rendered and at different places in your +templates append to those blocks. This is especially useful for css and +javascript. Your subtemplates can now define css and javscript files to be +included, and the css will be nicely put at the top and the javascript to the +bottom, just like you should. Also sekizai will ignore any duplicate content in +a single block.") + (license license:bsd-3))) + (define-public python-django-crispy-forms (package (name "python-django-crispy-forms") @@ -1033,6 +1199,51 @@ provides features like a web browseable API and authentication policies.") forms using your favorite CSS framework, without writing template code.") (license license:expat))) +(define-public python-django-compressor + (package + (name "python-django-compressor") + (version "2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "django_compressor" version)) + (sha256 + (base32 + "0kx7bclfa0sxlsz6ka70zr9ra00lks0hmv1kc99wbanx6xhirvfj")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (begin + (setenv "DJANGO_SETTINGS_MODULE" "compressor.test_settings") + (invoke "django-admin" "test" + "--pythonpath=.")) + #t)))) + ;; Tests fail with beautifulsoup 4.9+ + ;; https://github.com/django-compressor/django-compressor/issues/998 + #:tests? #f)) + (propagated-inputs + `(("python-django-appconf" ,python-django-appconf) + ("python-rcssmin" ,python-rcssmin) + ("python-rjsmin" ,python-rjsmin))) + (native-inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-brotli" ,python-brotli) + ("python-csscompressor" ,python-csscompressor) + ("python-django-sekizai" ,python-django-sekizai) + ("python-mock" ,python-mock))) + (home-page "https://django-compressor.readthedocs.io/en/latest/") + (synopsis + "Compress linked and inline JavaScript or CSS into single cached files") + (description + "Django Compressor combines and compresses linked and inline Javascript or +CSS in a Django templates into cacheable static files by using the compress +template tag.") + (license license:expat))) + (define-public python-django-override-storage (package (name "python-django-override-storage") |