~ruther/guix-local

481b16478310eb6b73c086def3b7952fefaced18 — Sébastien Lerique 5 years ago 6addd57
gnu: Add python-matrix-nio.

* gnu/packages/matrix.scm (python-matrix-nio): New variable.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
1 files changed, 80 insertions(+), 0 deletions(-)

M gnu/packages/matrix.scm
M gnu/packages/matrix.scm => gnu/packages/matrix.scm +80 -0
@@ 22,14 22,18 @@
(define-module (gnu packages matrix)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (gnu packages check)
  #:use-module (gnu packages crypto)
  #:use-module (gnu packages databases)
  #:use-module (gnu packages monitoring)
  #:use-module (gnu packages python-build)
  #:use-module (gnu packages python-check)
  #:use-module (gnu packages python-crypto)
  #:use-module (gnu packages python-web)
  #:use-module (gnu packages python-xyz)
  #:use-module (gnu packages xml)
  #:use-module (guix build-system python)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix packages))

(define-public python-matrix-client


@@ 149,3 153,79 @@ Python/Twisted.  It is intended to showcase the concept of Matrix and let
folks see the spec in the context of a codebase and let you run your own
homeserver and generally help bootstrap the ecosystem.")
    (license license:asl2.0)))

(define-public python-matrix-nio
  (package
    (name "python-matrix-nio")
    (version "0.18.7")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "matrix-nio" version))
       (sha256
        (base32 "0cw4y6dx8n8hynxqlzzkj8p34nfbc2xryvmkr5yhmja31y4rks4k"))))
    (build-system python-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-before 'check 'install-tests
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (copy-recursively (string-append
                                (assoc-ref inputs "tests") "/tests")
                               "tests")
             #t))
         (replace 'check
           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
             (when tests?
               (add-installed-pythonpath inputs outputs)
               ;; FIXME: two tests fail, for unknown reasons
               (invoke "python" "-m" "pytest" "-vv" "tests" "-k"
                       (string-append
                        "not test_upload_binary_file_object "
                        "and not test_connect_wrapper"))))))))
    (native-inputs
     `(("python-pytest" ,python-pytest-6)
       ("python-hyperframe" ,python-hyperframe)
       ("python-hypothesis" ,python-hypothesis-6.23)
       ("python-hpack" ,python-hpack)
       ("python-faker" ,python-faker)
       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
       ("python-aioresponses" ,python-aioresponses)
       ("python-pytest-benchmark" ,python-pytest-benchmark)
       ("python-toml" ,python-toml)
       ("tests"
        ;; The release on pypi comes without tests.  We can't build from this
        ;; checkout, though, because installation requires an invocation of
        ;; poetry.
        ,(origin
           (method git-fetch)
           (uri (git-reference
                 (url "https://github.com/poljar/matrix-nio.git")
                 (commit version)))
           (file-name (git-file-name name version))
           (sha256
            (base32
             "152prkndk53pfxm4in4xak4hwzyaxlbp6wv2zbk2xpzgyy9bvn3s"))))))
    (propagated-inputs
     `(("python-aiofiles" ,python-aiofiles)
       ("python-aiohttp" ,python-aiohttp)
       ("python-aiohttp-socks" ,python-aiohttp-socks)
       ("python-atomicwrites" ,python-atomicwrites-1.4)
       ("python-cachetools" ,python-cachetools)
       ("python-future" ,python-future)
       ("python-h11" ,python-h11)
       ("python-h2" ,python-h2)
       ("python-jsonschema" ,python-jsonschema)
       ("python-logbook" ,python-logbook)
       ("python-olm" ,python-olm)
       ("python-peewee" ,python-peewee)
       ("python-pycryptodome" ,python-pycryptodome)
       ("python-unpaddedbase64" ,python-unpaddedbase64)))
    (home-page "https://github.com/poljar/matrix-nio")
    (synopsis
     "Python Matrix client library, designed according to sans I/O principles")
    (description
     "Matrix nio is a multilayered Matrix client library.  The underlying base
layer doesn't do any network IO on its own, but on top of that is a full
fledged batteries-included asyncio layer using aiohttp.")
    (license license:isc)))