gnu: gourmet: Update to 0.17.4-0-8af29c8 and enable tests.
* gnu/packages/patches/gourmet-sqlalchemy-compat.patch: Add file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/nutrition.scm (gourmet): Update to 0.17.4-0-8af29c8. [source]: Apply patch. [python]: Delete argument. [tests?]: Likewise. [phases]{prepare-x}: New phase. {check}: New phase override. {install-dekstop-file-and-icons}: New phase. [native-inputs]: Delete python2-distutils-extra, intltool and python2-pygtk. Add python-dogtail, python-pytest, python-selenium and xorg-server-for-tests. [inputs]: Delete python2-pygtk, python2-sqlalchemy, python2-lxml, python2-pillow and python2-elib.intl. Add gtk+, python-argcomplete, python-beautifulsoup4, python-gst, python-keyring, python-lxml, python-pillow, python-pycairo, python-pyenchant, python-pygobject, python-requests, python-scrape-schema-recipe, python-sqlalchemy.
This commit is contained in:
parent
421d09a1d3
commit
cfc02804fc
@ -1214,6 +1214,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
|
||||
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
|
||||
%D%/packages/patches/go-skip-gc-test.patch \
|
||||
%D%/packages/patches/gourmet-sqlalchemy-compat.patch \
|
||||
%D%/packages/patches/gpaste-fix-paths.patch \
|
||||
%D%/packages/patches/gpm-glibc-2.26.patch \
|
||||
%D%/packages/patches/gpodder-disable-updater.patch \
|
||||
|
@ -30,13 +30,17 @@
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages enchant)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages gstreamer)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public python-scrape-schema-recipe
|
||||
@ -78,46 +82,80 @@ in the @url{https://schema.org/Recipe} format.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public gourmet
|
||||
(package
|
||||
(name "gourmet")
|
||||
(version "0.17.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/thinkle/gourmet")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"09a2zk140l4babwdj8pwcgl9v7rvwff9cn7h3ppfhm3yvsgkrx07"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("distutils-extra" ,python2-distutils-extra)
|
||||
("intltool" ,intltool)
|
||||
("python-pygtk" ,python2-pygtk))) ;for tests
|
||||
;; TODO: Add python-reportlab and/or python-poppler for printing/pdf
|
||||
;; export, and python-beautifulsoup for web import plugin.
|
||||
(inputs
|
||||
`(("pygtk" ,python2-pygtk)
|
||||
("sqlalchemy" ,python2-sqlalchemy)
|
||||
("python-lxml" ,python2-lxml)
|
||||
("python-pillow" ,python2-pillow)
|
||||
("elib.intl" ,python2-elib.intl)))
|
||||
(arguments
|
||||
`(#:python ,python-2 ;exception and print syntax
|
||||
#:tests? #f ;tests look bitrotted
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "python" "setup.py" "install" "--prefix"
|
||||
(assoc-ref outputs "out")))))))
|
||||
(home-page "https://thinkle.github.io/gourmet/")
|
||||
(synopsis "Recipe organizer")
|
||||
(description
|
||||
"Gourmet Recipe Manager is a recipe organizer that allows you to collect,
|
||||
;; Use the latest commit to gain Python 3 support.
|
||||
(let ((revision "0")
|
||||
(commit "8af29c8ded24528030e5ae2ea3461f61c1e5a575"))
|
||||
(package
|
||||
(name "gourmet")
|
||||
(version (git-version "0.17.4" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/thinkle/gourmet")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"08fbw6zp32ws6w9czwy2sqc9c9izlkglsskshj2114d0l79z4gj8"))
|
||||
(patches (search-patches "gourmet-sqlalchemy-compat.patch"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:modules `((guix build utils)
|
||||
(guix build python-build-system)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'check 'prepare-x
|
||||
;; Both the tests and the sanity-check phase need an X server to
|
||||
;; succeed.
|
||||
(lambda _
|
||||
(system "Xvfb &")
|
||||
(setenv "DISPLAY" ":0")))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(setenv "HOME" "/tmp") ;needed by tests
|
||||
(apply invoke "pytest" "-vv"
|
||||
;; XXX: This is needed because some tests in deeper
|
||||
;; directories or otherwise discovered by Pytest are
|
||||
;; broken.
|
||||
(map (cut string-append "gourmet/tests/" <>)
|
||||
(scandir "gourmet/tests"
|
||||
(cut string-prefix? "test_" <>)))))))
|
||||
(add-after 'install 'install-dekstop-file-and-icons
|
||||
(lambda _
|
||||
(define share (string-append #$output "/share"))
|
||||
(install-file ".flatpak/io.github.thinkle.Gourmet.desktop"
|
||||
(string-append share "/applications"))
|
||||
(install-file ".flatpak/io.github.thinkle.Gourmet.svg"
|
||||
(string-append share "/icons/Gourmet")))))))
|
||||
(native-inputs
|
||||
(list python-dogtail
|
||||
python-pytest
|
||||
python-selenium
|
||||
xorg-server-for-tests))
|
||||
(inputs
|
||||
(list gtk+
|
||||
python-argcomplete
|
||||
python-beautifulsoup4
|
||||
python-gst
|
||||
python-keyring
|
||||
python-lxml
|
||||
python-pillow
|
||||
python-pycairo
|
||||
python-pyenchant
|
||||
python-pygobject
|
||||
python-requests
|
||||
python-scrape-schema-recipe
|
||||
python-sqlalchemy))
|
||||
(home-page "https://thinkle.github.io/gourmet/")
|
||||
(synopsis "Recipe organizer")
|
||||
(description
|
||||
"Gourmet Recipe Manager is a recipe organizer that allows you to collect,
|
||||
search, organize, and browse your recipes. Gourmet can also generate shopping
|
||||
lists and calculate nutritional information. It imports Mealmaster,
|
||||
MasterCook and KRecipe files and exports PDFs, webpages, and other formats.")
|
||||
(license gpl2+)))
|
||||
(license gpl2+))))
|
||||
|
18
gnu/packages/patches/gourmet-sqlalchemy-compat.patch
Normal file
18
gnu/packages/patches/gourmet-sqlalchemy-compat.patch
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/gourmet/backends/db.py b/gourmet/backends/db.py
|
||||
index faa6a57a..7e6d2bc6 100644
|
||||
--- a/gourmet/backends/db.py
|
||||
+++ b/gourmet/backends/db.py
|
||||
@@ -773,9 +773,11 @@ class RecData (Pluggable):
|
||||
"""Return the number of rows in table that match criteria
|
||||
"""
|
||||
if criteria:
|
||||
- return table.count(*make_simple_select_arg(criteria,table)).execute().fetchone()[0]
|
||||
+ return sqlalchemy.select(
|
||||
+ sqlalchemy.func.count(criteria)).select_from(table).scalar()
|
||||
else:
|
||||
- return table.count().execute().fetchone()[0]
|
||||
+ return sqlalchemy.select(
|
||||
+ sqlalchemy.func.count()).select_from(table).scalar()
|
||||
|
||||
def fetch_join (self, table1, table2, col1, col2,
|
||||
column_names=None, sort_by=[], **criteria):
|
Loading…
Reference in New Issue
Block a user