2021-05-27 09:16:58 +02:00
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is an addendum to GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
( define-module ( wip dialect )
# :use-module ( ( guix licenses ) # :prefix license: )
# :use-module ( guix download )
# :use-module ( guix git-download )
# :use-module ( guix packages )
# :use-module ( guix utils )
# :use-module ( guix build-system meson )
# :use-module ( guix build-system python )
# :use-module ( gnu packages check )
# :use-module ( gnu packages gettext )
# :use-module ( gnu packages glib )
# :use-module ( gnu packages gnome )
# :use-module ( gnu packages gstreamer )
# :use-module ( gnu packages gtk )
# :use-module ( gnu packages pkg-config )
# :use-module ( gnu packages python )
# :use-module ( gnu packages python-check )
# :use-module ( gnu packages python-web )
# :use-module ( gnu packages python-xyz ) )
( define-public dialect
( package
( name "dialect" )
2021-11-02 22:03:14 +01:00
( version "1.4.1" )
2021-05-27 09:16:58 +02:00
( source
( origin
( method git-fetch )
( uri ( git-reference
( url "https://github.com/dialect-app/dialect" )
( commit version )
;; Translations moved to a separate repository
( recursive? #t ) ) )
( file-name ( git-file-name name version ) )
( sha256
2021-11-02 22:03:14 +01:00
( base32 "0nm39prxfbm9yxmih8k4jv2mdbsd3si7bllgh8a30zdym627myhh" ) ) ) )
2021-05-27 09:16:58 +02:00
( build-system meson-build-system )
( arguments
` ( # :glib-or-gtk? #t
# :phases
( modify-phases %standard-phases
( add-after 'unpack 'skip-gtk-update-icon-cache
( lambda _
( substitute* "build-aux/meson/postinstall.py"
( ( "gtk-update-icon-cache" ) ( which "true" ) )
( ( "update-desktop-database" ) ( which "true" ) ) )
#t ) )
( add-after 'install 'wrap-binary
( lambda* ( # :key inputs outputs # :allow-other-keys )
2021-11-02 22:03:14 +01:00
( let* ( ( out ( assoc-ref outputs "out" ) )
( pylib ( string-append out "/lib/python"
, ( version-major+minor
( package-version python ) )
"/site-packages" ) ) )
2021-05-27 09:16:58 +02:00
( wrap-program ( string-append out "/bin/dialect" )
` ( "GI_TYPELIB_PATH" = ( , ( getenv "GI_TYPELIB_PATH" ) ) )
` ( "PYTHONPATH" = ( , ( getenv "PYTHONPATH" ) , pylib ) ) ) )
#t ) ) ) ) )
( inputs
` ( ( "glib" , glib )
( "gstreamer" , gstreamer )
( "gobject-introspection" , gobject-introspection )
( "gtk+" , gtk+ )
( "libhandy" , libhandy )
2021-11-02 22:03:14 +01:00
( "python-dbus" , python-dbus )
2021-05-27 09:16:58 +02:00
( "python-googletrans" , python-googletrans )
( "python-gtts" , python-gtts )
( "python-pygobject" , python-pygobject ) ) )
( native-inputs
` ( ( "gettext" , gettext-minimal )
( "glib:bin" , glib "bin" ) ; for glib-compile-resources
( "pkg-config" , pkg-config ) ) )
( home-page "https://github.com/dialect-app/dialect" )
( synopsis "Translation app for GNOME" )
( description " A translation app for GNOME . It features:
@itemize
@item Translation based on the googletrans Python API, an unofficial API for Google Translate
@item Translation based on the LibreTranslate API, allowing you to use any public instance
@item Translation history
@item Automatic language detection
@item Text to speech
@item Clipboard buttons
@end itemize " )
( license license:gpl3+ ) ) )
( define-public python-googletrans
( package
( name "python-googletrans" )
( version "3.0.0" )
( source
( origin
;; Tests not included in release
( method git-fetch )
( uri ( git-reference
( url "https://github.com/ssut/py-googletrans" )
;; tagging releases is HARD!!
( commit "e10c5e8fa73b32700b0b6eab163e01664b6d5ff1" ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32
"18rrmnyjh2g96qc3nj3mwslr7lpna8irkk0gbaqy8i781vxgnvgq" ) ) ) )
( build-system python-build-system )
( arguments
` ( # :phases
( modify-phases %standard-phases
( add-after 'unpack 'loosen-version-requirements
( lambda _
( substitute* "setup.py"
( ( "==0.13.3" ) "" ) )
#t ) )
( replace 'check
( lambda* ( # :key inputs outputs tests? # :allow-other-keys )
( add-installed-pythonpath inputs outputs )
( when tests?
;; Most tests in tests/ fail, want network access.
( invoke "pytest" "-v" "googletrans" "tests/test_utils.py" ) )
#t ) ) ) ) )
( propagated-inputs
2021-11-14 14:03:35 +01:00
` ( ( "python-httpx" , python-httpx ) ) )
2021-05-27 09:16:58 +02:00
( native-inputs
2021-11-02 22:03:14 +01:00
` ( ( "python-mock" , python-mock )
2021-05-27 09:16:58 +02:00
( "python-pytest" , python-pytest ) ) )
( home-page "https://github.com/ssut/py-googletrans" )
( synopsis "Google Translate API for Python" )
( description
"Googletrans is a Python library that implements the Google Translate API. This uses the Google Translate Ajax API to make calls to such methods as detect and translate." )
( license license:expat ) ) )
( define-public python-gtts
( package
( name "python-gtts" )
2021-11-02 22:03:14 +01:00
( version "2.2.3" )
2021-05-27 09:16:58 +02:00
( source
( origin
( method url-fetch )
( uri ( pypi-uri "gTTS" version ) )
( sha256
2021-11-02 22:03:14 +01:00
( base32 "0g467h1501kxw4zniym03xkz3766bdp6j2j5l04p11ki4h8smkw8" ) ) ) )
2021-05-27 09:16:58 +02:00
( build-system python-build-system )
( arguments
2021-11-02 22:03:14 +01:00
` ( # :phases
2021-05-27 09:16:58 +02:00
( modify-phases %standard-phases
2021-11-02 22:03:14 +01:00
( add-after 'unpack 'adjust-test-suite
( lambda _
;; This test does use the network.
( substitute* "gtts/tests/test_tts.py"
( ( "def test_bad_fp_type" all )
( string-append "@pytest.mark.net\n" all ) ) )
#t ) )
2021-05-27 09:16:58 +02:00
( replace 'check
( lambda* ( # :key tests? # :allow-other-keys )
( when tests?
2021-11-02 22:03:14 +01:00
( invoke "pytest" "-v" "-s" "gtts"
"-m" "not net" ) )
2021-05-27 09:16:58 +02:00
#t ) ) ) ) )
( propagated-inputs
` ( ( "python-click" , python-click )
( "python-requests" , python-requests )
( "python-six" , python-six )
;; Is this needed?
( "python-gtts-token" , python-gtts-token ) ) )
( native-inputs
` ( ( "python-flake8" , python-flake8 )
( "python-mock" , python-mock )
( "python-pytest" , python-pytest )
( "python-pytest-cov" , python-pytest-cov )
( "python-six" , python-six )
( "python-testfixtures" , python-testfixtures ) ) )
( home-page "https://github.com/pndurette/gTTS" )
( synopsis "Python library and CLI tool fpr Google Translate text-to-speech API" )
( description
" This package provides @acronym { gTTS, Google Text-to-Speech } , a Python
library and CLI tool to interface with Google Translate text-to-speech API . " )
( license license:expat ) ) )
( define-public python-gtts-token
( package
( name "python-gtts-token" )
( version "1.1.4" )
( source
( origin
( method git-fetch )
;; tests not included in pypi release
( uri ( git-reference
( url "https://github.com/Boudewijn26/gTTS-token" )
( commit ( string-append "v" version ) ) ) )
( file-name ( git-file-name name version ) )
( sha256
( base32
"0vr52zc0jqyfvsccl67j1baims3cdx2is1y2lpx2kav9gadkn8hp" ) ) ) )
( build-system python-build-system )
( arguments
' ( # :tests? #f ; tests try to connect to the internet
# :phases
( modify-phases %standard-phases
( replace 'check
( lambda* ( # :key tests? # :allow-other-keys )
( when tests?
( invoke "python" "-m" "unittest" "discover"
"-v" "-s" "gtts_token/tests/" ) )
#t ) ) ) ) )
( propagated-inputs
` ( ( "python-requests" , python-requests ) ) )
( home-page "https://github.com/boudewijn26/gTTS-token" )
( synopsis "Calculates a token to run the Google Translate text to speech" )
( description " This package provides a Python implementation of the token
validation of Google Translate . " )
( license license:expat ) ) )