+
+(define-public python-speg
+ (package
+ (name "python-speg")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "speg" version ".zip"))
+ (sha256
+ (base32 "0w9y4jf4787dzhy6rvhwi0mpl0r8qkqmqmyv2hpwdpv8w53yzjqh"))))
+ (arguments
+ `(#:tests? #f)) ;FIXME: tests fail, not sure why
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (build-system python-build-system)
+ (home-page "https://github.com/avakar/speg")
+ (synopsis "PEG-based parser interpreter with memoization")
+ (description "This package is a PEG-based parser and interpreter with
+memoization.")
+ (license license:expat)))
+
+(define-public python-cson
+ (package
+ (name "python-cson")
+ (version "0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cson" version))
+ (sha256
+ (base32 "00cyvigg4npbph39ghkg77xbxisa6plf75vii24igxfizik0337f"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-speg" ,python-speg)))
+ (home-page "https://github.com/avakar/pycson")
+ (synopsis "Parser for Coffeescript Object Notation (CSON)")
+ (description "This package is a parser for Coffeescript Object
+Notation (CSON).")
+ (license license:expat)))
+
+(define-public python-asynctest
+ (package
+ (name "python-asynctest")
+ (version "0.13.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "asynctest" version))
+ (sha256
+ (base32
+ "1b3zsy7p84gag6q8ai2ylyrhx213qdk2h2zb6im3xn0m5n264y62"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "python" "-X" "dev" "-m" "unittest" "-v" "test")))
+ (add-after 'unpack 'disable-tests
+ (lambda* _
+ (substitute* "test/test_selector.py"
+ ;; XXX: This test fails for unknown reason inside the build
+ ;; environment.
+ (("def test_events_watched_outside_test_are_ignored")
+ "@unittest.skip('disabled by guix')
+ def test_events_watched_outside_test_are_ignored")))))))
+ (home-page "https://github.com/Martiusweb/asynctest")
+ (synopsis "Extension of unittest for testing asyncio libraries")
+ (description
+ "The package asynctest is built on top of the standard unittest module
+and cuts down boilerplate code when testing libraries for asyncio.")
+ (license license:asl2.0)))
+
+(define-public python-aionotify
+ (package
+ (name "python-aionotify")
+ (version "0.2.0")
+ (source
+ (origin
+ ;; Source tarball on PyPi lacks tests
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rbarrois/aionotify")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1sk9i8czxgsbrswsf1nlb4c82vgnlzi8zrvrxdip92w2z8hqh43y"))))
+ (build-system python-build-system)
+ (native-inputs `(("python-asynctest" ,python-asynctest)))
+ (home-page "https://github.com/rbarrois/aionotify")
+ (synopsis "Asyncio-powered inotify library")
+ (description
+ "@code{aionotify} is a simple, asyncio-based inotify library.")
+ (license license:bsd-3)))
+
+(define-public python-forbiddenfruit
+ (package
+ (name "python-forbiddenfruit")
+ (version "0.1.3")
+ (source
+ (origin
+ ;; Source tarball on PyPi lacks Makefile that builds and runs tests
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/clarete/forbiddenfruit")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fp2xvdqpi910j9r3q68x38phpxbm700gjdi2m2j5gs91xdnyyh2"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "make" "SKIP_DEPS=1"))))))
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-coverage" ,python-coverage)))
+ (home-page "https://github.com/clarete/forbiddenfruit")
+ (synopsis "Patch python built-in objects")
+ (description "This project allows Python code to extend built-in types.")
+ (license (list license:gpl3+ license:expat))))
+
+(define-public python-shouldbe
+ (package
+ (name "python-shouldbe")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "shouldbe" version))
+ (sha256
+ (base32
+ "16zbvjxf71dl4yfbgcr6idyim3mdrfvix1dv8b95p0s9z07372pj"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-forbiddenfruit" ,python-forbiddenfruit)))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/directxman12/should_be")
+ (synopsis "Python Assertion Helpers inspired by Shouldly")
+ (description
+ "Python Assertion Helpers inspired by Shouldly.")
+ (license license:isc)))
+
+(define-public python-k5test
+ (package
+ (name "python-k5test")
+ (version "0.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "k5test" version))
+ (sha256
+ (base32
+ "1lqp3jgfngyhaxjgj3n230hn90wsylwilh120yjf62h7b1s02mh8"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)
+ ;; `which`, `kadmin.local` binaries called inside library
+ ("which" ,which)
+ ("mit-krb5" ,mit-krb5)))
+ (native-inputs `(("mit-krb5" ,mit-krb5)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* _
+ (substitute* "k5test/realm.py"
+ (("'kadmin_local'") "'kadmin.local'")))))))
+ (home-page "https://github.com/pythongssapi/k5test")
+ (synopsis "Library for setting up self-contained Kerberos 5 environments")
+ (description
+ "@code{k5test} is a library for setting up self-contained Kerberos 5
+environments, and running Python unit tests inside those environments. It is
+based on the file of the same name found alongside the MIT Kerberos 5 unit
+tests.")
+ (license license:isc)))
+
+(define-public python-gssapi
+ (package
+ (name "python-gssapi")
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "gssapi" version))
+ (sha256
+ (base32
+ "1gymg4asvwrz7y13qpwp2s5g8qwq179d72gkj09q6bfcgs82l5wr"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-decorator" ,python-decorator)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("mit-krb5" ,mit-krb5)))
+ ;; for tests
+ (native-inputs
+ `(("python-shouldbe" ,python-shouldbe)
+ ("python-parameterized" ,python-parameterized)
+ ("python-k5test" ,python-k5test)
+ ("python-nose" ,python-nose)))
+ (home-page "https://github.com/pythongssapi/python-gssapi")
+ (synopsis "Python GSSAPI Wrapper")
+ (description
+ "Python-GSSAPI provides both low-level and high level wrappers around the
+GSSAPI C libraries. While it focuses on the Kerberos mechanism, it should
+also be useable with other GSSAPI mechanisms.")
+ (license license:isc)))
+
+(define-public python-check-manifest
+ (package
+ (name "python-check-manifest")
+ (version "0.37")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "check-manifest" version))
+ (sha256
+ (base32
+ "0lk45ifdv2cpkl6ayfyix7jwmnxa1rha7xvb0ih5999k115wzqs4"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("git" ,git)))
+ (home-page "https://github.com/mgedmin/check-manifest")
+ (synopsis "Check MANIFEST.in in a Python source package for completeness")
+ (description "Python package can include a MANIFEST.in file to help with
+sending package files to the Python Package Index. This package checks that
+file to ensure it completely and accurately describes your project.")
+ (license license:expat)))
+
+(define-public python-android-stringslib
+ (package
+ (name "python-android-stringslib")
+ (version "0.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://framagit.org/tyreunom/python-android-strings-lib")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gij55qzzq1h83kfpvhai1vf78kkhyvxa6l17m2nl24454lhfin4"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f))
+ (home-page "https://framagit.org/tyreunom/python-android-strings-lib")
+ (synopsis "Android strings.xml support")
+ (description "Android Strings Lib provides support for android's strings.xml
+files. These files are used to translate strings in android apps.")
+ (license license:expat)))
+
+(define-public python-watchdog
+ (package
+ (name "python-watchdog")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "watchdog" version))
+ (sha256
+ (base32
+ "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-failing
+ (lambda _
+ (delete-file "tests/test_inotify_buffer.py")
+ (delete-file "tests/test_snapshot_diff.py")
+ #t)))))
+ (propagated-inputs
+ `(("python-argh" ,python-argh)
+ ("python-pathtools" ,python-pathtools)
+ ("python-pyyaml" ,python-pyyaml)))
+ (native-inputs
+ `(("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-timeout" ,python-pytest-timeout)))
+ (home-page "https://github.com/gorakhargosh/watchdog")
+ (synopsis "Filesystem events monitoring")
+ (description "This package provides a way to monitor filesystem events
+such as a file modification and trigger an action. This is similar to inotify,
+but portable.")
+ (license license:asl2.0)))
+
+(define-public offlate
+ (package
+ (name "offlate")
+ (version "0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://framagit.org/tyreunom/offlate")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "13pqnbl05wcyldfvl75fp89vjgwsvxyc69vhnb17kkha2rc2k1h7"))))
+ (build-system python-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("python-android-stringslib" ,python-android-stringslib)
+ ("python-dateutil" ,python-dateutil)
+ ("python-gitlab" ,python-gitlab)
+ ("python-lxml" ,python-lxml)
+ ("python-polib" ,python-polib)
+ ("python-pyenchant" ,python-pyenchant)
+ ("python-pygit2" ,python-pygit2)
+ ("python-pygithub" ,python-pygithub)
+ ("python-pyqt" ,python-pyqt)
+ ("python-requests" ,python-requests)
+ ("python-ruamel.yaml" ,python-ruamel.yaml)
+ ("python-translation-finder" ,python-translation-finder)
+ ("python-watchdog" ,python-watchdog)))
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (home-page "https://framagit.org/tyreunom/offlate")
+ (synopsis "Offline translation interface for online translation tools")
+ (description "Offlate offers a unified interface for different translation
+file formats, as well as many different online translation platforms. You can
+use it to get work from online platforms, specialized such as the Translation
+Project, or not such a gitlab instance when your upstream doesn't use any
+dedicated platform. The tool proposes a unified interface for any format and
+an upload option to send your work back to the platform.")
+ (license license:gpl3+)))
+
+(define-public python-pypng
+ (package
+ (name "python-pypng")
+ (version "0.0.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pypng" version))
+ (sha256
+ (base32 "02qpa22ls41vwsrzw9r9qhj1nhq05p03hb5473pay6y980s86chh"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/drj11/pypng")
+ (synopsis "Pure Python PNG image encoder/decoder")
+ (description
+ "The PyPNG module implements support for PNG images. It reads and writes
+PNG files with all allowable bit depths (1/2/4/8/16/24/32/48/64 bits per
+pixel) and colour combinations: greyscale (1/2/4/8/16 bit); RGB, RGBA,
+LA (greyscale with alpha) with 8/16 bits per channel; colour mapped
+images (1/2/4/8 bit). Adam7 interlacing is supported for reading and writing.
+A number of optional chunks can be specified (when writing) and
+understood (when reading): tRNS, bKGD, gAMA.
+
+PyPNG is not a high level toolkit for image processing (like PIL) and does not
+aim at being a replacement or competitor. Its strength lies in fine-grained
+extensive support of PNG features. It can also read and write Netpbm PAM
+files, with a focus on its use as an intermediate format for implementing
+custom PNG processing.")
+ (license license:expat)))