From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id wN7rM8Jy6mG4mQAAgWs5BA (envelope-from ) for ; Fri, 21 Jan 2022 09:45:54 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id WACyLMJy6mEwAwEAG6o9tA (envelope-from ) for ; Fri, 21 Jan 2022 09:45:54 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8DAA6243D9 for ; Fri, 21 Jan 2022 09:45:53 +0100 (CET) Received: from localhost ([::1]:39810 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nApYO-00059J-I5 for larch@yhetil.org; Fri, 21 Jan 2022 03:45:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nApFK-0007p5-JB for guix-patches@gnu.org; Fri, 21 Jan 2022 03:26:15 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:38990) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nApFC-0001J1-Ab for guix-patches@gnu.org; Fri, 21 Jan 2022 03:26:10 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nApFC-00065v-8o for guix-patches@gnu.org; Fri, 21 Jan 2022 03:26:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#53402] Add python-mne: fix or disable tests Resent-From: Vivien Kraus Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 21 Jan 2022 08:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53402 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 53402@debbugs.gnu.org Received: via spool by 53402-submit@debbugs.gnu.org id=B53402.164275354723407 (code B ref 53402); Fri, 21 Jan 2022 08:26:02 +0000 Received: (at 53402) by debbugs.gnu.org; 21 Jan 2022 08:25:47 +0000 Received: from localhost ([127.0.0.1]:60126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nApEl-00065G-Df for submit@debbugs.gnu.org; Fri, 21 Jan 2022 03:25:47 -0500 Received: from planete-kraus.eu ([89.234.140.182]:38952) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nApEh-000654-Bb for 53402@debbugs.gnu.org; Fri, 21 Jan 2022 03:25:34 -0500 Received: from planete-kraus.eu (localhost.lan [127.0.0.1]) by planete-kraus.eu (OpenSMTPD) with ESMTP id 3bbbe11e for <53402@debbugs.gnu.org>; Fri, 21 Jan 2022 08:25:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=planete-kraus.eu; h= references:from:to:subject:date:in-reply-to:message-id :mime-version:content-type; s=dkim; bh=ggIiW58CZCUTomtMUUxNwZXvv yA=; b=jfhzV/Sf+T572CelV+p9/rY5euylrDJ7q/k2LMHNeqpBuE/bKUf8okaMw 8PyB4hbzMolQDGfxiMT1hCBfIkK4RREd2qKtFvXvoqQ5l89t34Q8eUCBSS8GI0pb 12Hbl6gCjnVqZa4AIUptoikLcJyUmYuTpC98aI224Ai5CFJnwA= Received: by planete-kraus.eu (OpenSMTPD) with ESMTPSA id 9456cd3a (TLSv1.3:AEAD-CHACHA20-POLY1305-SHA256:256:NO) for <53402@debbugs.gnu.org>; Fri, 21 Jan 2022 08:24:46 +0000 (UTC) References: User-agent: mu4e 1.6.10; emacs 27.2 Date: Fri, 21 Jan 2022 09:17:38 +0100 In-reply-to: Message-ID: <878rv9ijhv.fsf@planete-kraus.eu> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" Reply-to: Vivien Kraus X-ACL-Warn: , Vivien Kraus via Guix-patches From: Vivien Kraus via Guix-patches via X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1642754753; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=IE/yYAh5iRifj4pLsU4ARemEzFkAERSZUbegJ7HBQDg=; b=YBIiCMgpcC6fu8+ivsrZMEtymVDw1B2gGRl9kqfzI6NO+YbKgRl7PJzwEGxHAJhAtInOT3 wHjUr5b3enK95SB3MEvUJf5nIrOfJsPTG3Z3TGR4t1XpUA6+l5HfQpqYqqhKL/xnavrstY DadpayBgaLEpSSbDr5zkdoRL8YloQduNjSzMRLCYdV16cDB2x4hRNvTIwa1PhJv09N3QXZ Z5NjXq4vRyn71oSgfUAkxPAdcY9IL5EnbAzerCg5tTiCIB8vjzK3yUjY0CbxC3J9LxHRkt xb8ejVQFNewJ/JcHhScDDOvKvQD+wFXfHnRGxTtr0ALJ6o9ySOruMp5/tLY8Pw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1642754753; a=rsa-sha256; cv=none; b=IJrIMfApYRbXsq5JTts5ul+0u6DtMgXYM6DvC32IAGRD4eg2UPj82500QUpW+UfLIL+njy eowKRMWl/sOSSQwp+druQMAv/yDrCXa+NI9XmVe3raJoEb989hjh6SwlSfU9yfbPEOE89s sS2D90QoGfS2w+/cXgQTSxz/7LFDwtmrrAAA+GrW+0chrVZujA/epgl9k64qVpxQ6z0wFJ lEWK0kpLNllommWiplkzwK1Tt0Z3rGomni6pagLzov35zVAaVgwmWf8TiB/G328wZpGsfP PGQUTCxiq2uNQEayOWQ2Ry39iBl5rMsR15WRdbo4RA5EItaSnTqlnR9OP2lC0w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=planete-kraus.eu header.s=dkim header.b="jfhzV/Sf"; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.72 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=planete-kraus.eu header.s=dkim header.b="jfhzV/Sf"; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 8DAA6243D9 X-Spam-Score: -5.72 X-Migadu-Scanner: scn1.migadu.com X-TUID: dDLQF0A0u2s0 --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Dear guix, I could fix one test suite, but as luis-felipe told me on #guix, the test data isn=E2=80=99t fully distributed by pypi for mne, so I had to disa= ble it. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Add-python-imageio-ffmpeg.patch Content-Transfer-Encoding: quoted-printable From=205c8b341c7d39cc88d723788416865e4d9e26b331 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 15:39:12 +0100 Subject: [PATCH 01/18] gnu: Add python-imageio-ffmpeg. * gnu/packages/python-xyz.scm (python-imageio-ffmpeg): New variable. =2D-- gnu/packages/python-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index eff1c4259b..c0b1fe9872 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28678,3 +28678,36 @@ (define-public python-reedsolo but not binary streams.") (license license:public-domain))) =20 +(define-public python-imageio-ffmpeg + (package + (name "python-imageio-ffmpeg") + (version "0.4.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "imageio-ffmpeg" version)) + (sha256 + (base32 + "0ff14079izsyxwf6ki68k9a7w5krjlal7lwqvzg2bbddl92l5spj")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'set-ffmpeg-exe + (lambda* (#:key inputs #:allow-other-keys) + ;; There are different strategies to find ffmpeg, we + ;; only fix the last resort, "system ffmpeg command" + (substitute* "imageio_ffmpeg/_utils.py" + (("exe =3D \"ffmpeg\"") + (format #f "exe =3D ~s" + (search-input-file + inputs "/bin/ffmpeg"))))))))) + (inputs (list ffmpeg)) + (home-page "https://github.com/imageio/imageio-ffmpeg") + (synopsis "@samp{ffmpeg} wrapper for Python") + (description + "The purpose of this project is to provide a simple and reliable +@samp{ffmpeg} wrapper for working with video files. It implements two sim= ple +generator functions for reading and writing data from/to ffmpeg, which +reliably terminate the ffmpeg process when done. It also takes care of +publishing platform-specific wheels that include the binary @samp{ffmpeg} +executables.") + (license license:bsd-2))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-Add-python-edflib.patch Content-Transfer-Encoding: quoted-printable From=20b1c4e71b7ce091e57b247c879d41a9e058054606 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 15:47:30 +0100 Subject: [PATCH 02/18] gnu: Add python-edflib. * gnu/packages/python-science.scm (python-edflib): New variable. =2D-- gnu/packages/python-science.scm | 51 ++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.= scm index 1cfc8e5869..47b142494e 100644 =2D-- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -61,7 +61,8 @@ (define-module (gnu packages python-science) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) =2D #:use-module (guix build-system python)) + #:use-module (guix build-system python) + #:use-module (guix gexp)) =20 (define-public python-scipy (package @@ -1035,3 +1036,51 @@ (define-public python-modin libraries, Modin provides seamless integration and compatibility with exis= ting pandas code.") (license license:asl2.0))) + +(define-public python-edflib + (package + (name "python-edflib") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (pypi-uri "EDFlib-Python" version)) + (sha256 + (base32 + "1g069kyibskx5q2mc494xgjhvdspw5lvk2xhn0kqcgq1h37x5lfv")))) + (build-system python-build-system) + (arguments + (list #:tests? #f + #:phases + #~(modify-phases %standard-phases + ;; XXX: PEP 517 manual build copied from python-isort. + (replace 'build + (lambda _ + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "python" + "-m" + "build" + "--wheel" + "--no-isolation" + "."))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" + "--no-cache-dir" + "--no-input" + "install" + "--no-deps" + "--prefix" + #$output + whl))))))) + (propagated-inputs (list python-numpy python-pypa-build)) + (home-page "https://www.teuniz.net/edflib_python/") + (synopsis "Read and write EDF+/BDF+ files") + (description + "EDFlib for Python is a programming library to read and write EDF+ and +BDF+ files. It also reads old-type EDF/BDF files. @dfn{EDF} means +@url{https://www.teuniz.net/edfbrowser/edf%20format%20description.html, +European Data Format}. @dfn{BDF} is the +@url{https://www.teuniz.net/edfbrowser/bdfplus%20format%20description.html, +24-bit version} of EDF.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-gnu-Add-python-eeglabio.patch Content-Transfer-Encoding: quoted-printable From=209a21f7bba1ef895d664115a70c27cdd7769bb108 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 17:17:11 +0100 Subject: [PATCH 03/18] gnu: Add python-eeglabio. * gnu/packages/python-science.scm (python-eeglabio): New variable. =2D-- gnu/packages/python-science.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.= scm index 47b142494e..e6a15ae27f 100644 =2D-- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1084,3 +1084,32 @@ (define-public python-edflib @url{https://www.teuniz.net/edfbrowser/bdfplus%20format%20description.html, 24-bit version} of EDF.") (license license:bsd-3))) + +(define-public python-eeglabio + (package + (name "python-eeglabio") + (version "0.0.1.post6") + (source (origin + (method url-fetch) + (uri (pypi-uri "eeglabio" version)) + (sha256 + (base32 + "0k70s8lg9b9mcs883kq8jgnj9wmxvb96q54w23f3zw38jjxw46gs")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'restore-requirements.txt + (lambda _ + ;; requirements.txt is not distributed, but it is in the + ;; source + (call-with-output-file "requirements.txt" + (lambda (port) + (format port "numpy +scipy +")))))))) + (propagated-inputs (list python-numpy python-scipy)) + (home-page "https://github.com/jackz314/eeglabio") + (synopsis "I/O support for EEGLAB files in Python") + (description "I/O support for EEGLAB files in Python.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-gnu-Add-python-nibabel.patch Content-Transfer-Encoding: quoted-printable From=207e59b85005be2e61979e216e070bed99de8cae02 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 17:38:47 +0100 Subject: [PATCH 04/18] gnu: Add python-nibabel. * gnu/packages/python-science.scm (python-nibabel): New variable. =2D-- gnu/packages/python-science.scm | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.= scm index e6a15ae27f..a79aacec03 100644 =2D-- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -54,6 +54,7 @@ (define-module (gnu packages python-science) #:use-module (gnu packages sphinx) #:use-module (gnu packages statistics) #:use-module (gnu packages time) + #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -1113,3 +1114,65 @@ (define-public python-eeglabio (synopsis "I/O support for EEGLAB files in Python") (description "I/O support for EEGLAB files in Python.") (license license:bsd-3))) + +(define-public python-nibabel + (package + (name "python-nibabel") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "nibabel" version)) + (sha256 + (base32 + "17n23w7y0hiz2vma5si7wy184d59bp14zd8nr6hi203ldd1gjbsd")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Some tests have a setup function, but it is not call= ed + ;; (!) + (for-each (lambda (fix) + (let ((file (open-file (string-append + "nibabel/streamline= s/tests/test_" + (car fix) ".py") "a= "))) + (format file " +~a()" + (cdr fix)) + (close-port file))) + '(("array_sequence" . "setup_module") + ("streamlines" . "setup") + ("tck" . "setup_module") + ("tractogram" . "setup_module") + ("trk" . "setup_module")))))))) + (propagated-inputs (list python-numpy python-packaging)) + (native-inputs (list python-coverage + python-gitpython + python-pytest + python-pytest-cov + python-pytest-doctestplus + python-twine)) + (home-page "https://nipy.org/nibabel/") + (synopsis "Access a multitude of neuroimaging data formats") + (description + "This package provides read +/- write access to some common +medical and neuroimaging file formats, including: +@url{http://www.grahamwideman.com/gw/brain/analyze/formatdoc.htm, +ANALYZE} (plain, SPM99, SPM2 and later), +@url{https://www.nitrc.org/projects/gifti, GIFTI}, +@url{http://nifti.nimh.nih.gov/nifti-1/, NIfTI1}, +@url{http://nifti.nimh.nih.gov/nifti-2/, NIfTI2}, +@url{https://www.nitrc.org/projects/cifti/, CIFTI-2}, +@url{https://en.wikibooks.org/wiki/MINC/Reference/MINC1_File_Format_Refere= nce, +MINC1}, +@url{https://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Refe= rence, +MINC2}, @url{https://afni.nimh.nih.gov/pub/dist/src/README.attributes, AFNI +BRIK/HEAD}, +@url{https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/MghFormat, MGH} = and +@url{http://xmedcon.sourceforge.net/Docs/Ecat, ECAT} as well as Philips +PAR/REC. We can read and write @url{https://surfer.nmr.mgh.harvard.edu/, +FreeSurfer} geometry, annotation and morphometry files. There is some very +limited support for @url{http://medical.nema.org/, DICOM}. NiBabel is the +successor of @url{http://niftilib.sourceforge.net/pynifti/, PyNIfTI}.") + (license license:expat))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0005-gnu-Add-python-nitime.patch Content-Transfer-Encoding: quoted-printable From=202b16738c003b90373b4ee857b7bcd7c441ab4a83 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 19:12:02 +0100 Subject: [PATCH 05/18] gnu: Add python-nitime. * gnu/packages/python-science.scm (python-nitime): New variable. =2D-- gnu/packages/python-science.scm | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.= scm index a79aacec03..08a12d3b99 100644 =2D-- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1176,3 +1176,37 @@ (define-public python-nibabel limited support for @url{http://medical.nema.org/, DICOM}. NiBabel is the successor of @url{http://niftilib.sourceforge.net/pynifti/, PyNIfTI}.") (license license:expat))) + +(define-public python-nitime + (package + (name "python-nitime") + (version "0.9") + (source (origin + (method url-fetch) + (uri (pypi-uri "nitime" version)) + (sha256 + (base32 + "0x1q6ka8i330yhp5h0h6igfs2gp5dndiybyfkdi45a8zpfnr0zbf")))) + (build-system python-build-system) + (propagated-inputs (list python-matplotlib python-networkx python-niba= bel + python-numpy python-scipy)) + (native-inputs (list python-cython python-pytest)) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'delete-generated-cython + (lambda _ + (delete-file "nitime/_utils.c"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" "nitime"))))))) + (home-page "http://nipy.org/nitime/") + (synopsis "Nitime: timeseries analysis for neuroscience data") + (description + "Nitime contains a core of numerical algorithms for +time-series analysis both in the time and spectral domains, a set of conta= iner +objects to represent time-series, and auxiliary objects that expose a high +level interface to the numerical machinery and make common analysis tasks = easy +to express with compact and semantically clear code.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0006-gnu-Add-python-flake8-array-spacing.patch Content-Transfer-Encoding: quoted-printable From=204eab1c63bfed00124587a7b35dda2f12512653fe Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 19:20:06 +0100 Subject: [PATCH 06/18] gnu: Add python-flake8-array-spacing. * gnu/packages/python-science.scm (python-flake8-array-spacing): New variab= le. =2D-- gnu/packages/python-science.scm | 1 + gnu/packages/python-xyz.scm | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.= scm index 08a12d3b99..97cca59644 100644 =2D-- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1210,3 +1210,4 @@ (define-public python-nitime level interface to the numerical machinery and make common analysis tasks = easy to express with compact and semantically clear code.") (license license:bsd-3))) + diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index c0b1fe9872..af05195513 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28711,3 +28711,20 @@ (define-public python-imageio-ffmpeg publishing platform-specific wheels that include the binary @samp{ffmpeg} executables.") (license license:bsd-2))) + +(define-public python-flake8-array-spacing + (package + (name "python-flake8-array-spacing") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flake8_array_spacing" version)) + (sha256 + (base32 "0nyp2x45hg5dkdrn0j2wcd336dnx6csizpfq5fwbk774wrb0lh6d"))= )) + (build-system python-build-system) + (propagated-inputs (list python-flake8 python-pycodestyle)) + (home-page "https://github.com/larsoner/flake8-array-spacing") + (synopsis "flake8 plugin to make exceptions for array-like variables") + (description "Recast some E2XX errors as A2XX with exceptions for arra= y-like variables.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0007-gnu-Add-python-makefun.patch Content-Transfer-Encoding: quoted-printable From=20a1208f8263f13a61f1a6cde285de3e5aed9e3605 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 21:17:39 +0100 Subject: [PATCH 07/18] gnu: Add python-makefun. * gnu/packages/python-xyz.scm (python-makefun): New variable. =2D-- gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index af05195513..f09f4abf57 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28728,3 +28728,24 @@ (define-public python-flake8-array-spacing (synopsis "flake8 plugin to make exceptions for array-like variables") (description "Recast some E2XX errors as A2XX with exceptions for arra= y-like variables.") (license license:bsd-3))) + +(define-public python-makefun + (package + (name "python-makefun") + (version "1.13.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "makefun" version)) + (sha256 + (base32 + "1gqnqvwzig9ym4nyzwy6dzra7sg6339rdaca59fvkfzzf2vbhnwq")))) + (build-system python-build-system) + (native-inputs (list python-pytest python-pytest-runner + python-setuptools-scm)) + (home-page "https://github.com/smarie/python-makefun") + (synopsis "Small library to dynamically create python functions") + (description + "@samp{makefun} helps you create functions dynamically, with +the signature of your choice. It was largely inspired by @samp{decorator}= and +@samp{functools}, and created mainly to cover some of their limitations.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0008-gnu-Add-python-pytest-logging.patch Content-Transfer-Encoding: quoted-printable From=204ba30ee1032e852104542b459e0b5e76725f0df5 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:32:09 +0100 Subject: [PATCH 08/18] gnu: Add python-pytest-logging. * gnu/packages/python-xyz.scm (python-pytest-logging): New variable. =2D-- gnu/packages/python-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index f09f4abf57..6522026717 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28749,3 +28749,22 @@ (define-public python-makefun the signature of your choice. It was largely inspired by @samp{decorator}= and @samp{functools}, and created mainly to cover some of their limitations.") (license license:bsd-3))) + +(define-public python-pytest-logging + (package + (name "python-pytest-logging") + (version "2015.11.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-logging" version)) + (sha256 + (base32 + "15n8fyxvvwmk982vj0m9yl76hn7pp4qqljfmxarbgahqrxgciiff")))) + (build-system python-build-system) + (propagated-inputs (list python-pytest)) + (home-page "https://github.com/saltstack/pytest-logging") + (synopsis + "Configures logging and allows tweaking the log level with a py.test = flag") + (description + "Configures logging and allows tweaking the log level with a py.test = flag.") + (license license:asl2.0))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0009-gnu-Add-a-test-less-python-decopatch.patch Content-Transfer-Encoding: quoted-printable From=2070ec47cdd5ef2dfe750cf54677ae2af19d204ad5 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:32:53 +0100 Subject: [PATCH 09/18] gnu: Add a test-less python-decopatch. * gnu/packages/python-xyz.scm (python-decopatch-minimal): New variable. =2D-- gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6522026717..d51deec454 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28768,3 +28768,33 @@ (define-public python-pytest-logging (description "Configures logging and allows tweaking the log level with a py.test = flag.") (license license:asl2.0))) + +;; decopatch requires the next pytest modules if tests are enabled. The py= test +;; modules require each other for tests. + +(define python-decopatch-minimal + (package + (name "python-decopatch-minimal") + (version "1.4.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "decopatch" version)) + (sha256 + (base32 + "0i6i811s2j1z0cl6y177dwsbfxib8dvb5c2jpgklvc2xy4ahhsy6")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list python-makefun)) + (native-inputs (list python-pytest python-pytest-runner + python-setuptools-scm)) + (home-page "https://github.com/smarie/python-decopatch") + (synopsis "Python decorators made easy") + (description + "Because of a tiny oddity in the python language, writing +decorators without help can be a pain because you have to handle the +no-parenthesis usage +@url{https://smarie.github.io/python-decopatch/motivation, explicitly}. +@samp{decopatch} provides a simple way to solve this issue so that writing +decorators is simple and straightforward.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0010-gnu-Add-a-test-less-python-pytest-harvest.patch Content-Transfer-Encoding: quoted-printable From=20cf04823d3c5f711f04776a85fd39f043f8b56fea Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:33:32 +0100 Subject: [PATCH 10/18] gnu: Add a test-less python-pytest-harvest. * gnu/packages/python-xyz.scm (python-pytest-harvest-minimal): New variable. =2D-- gnu/packages/python-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d51deec454..15bd70fa8f 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28798,3 +28798,27 @@ (define python-decopatch-minimal @samp{decopatch} provides a simple way to solve this issue so that writing decorators is simple and straightforward.") (license license:bsd-3))) + +(define python-pytest-harvest-minimal + (package + (name "python-pytest-harvest-minimal") + (version "1.10.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-harvest" version)) + (sha256 + (base32 + "092drlh96rhikwqqyfpwqhkzfzd7z8m5gbmjgky8npm81849jbsk")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list python-decopatch-minimal python-makefun + python-six)) + (native-inputs (list python-pytest python-pytest-runner + python-setuptools-scm)) + (home-page "https://github.com/smarie/python-pytest-harvest") + (synopsis "Store data created during your @samp{pytest} tests executio= n") + (description + "Store data created during your pytest tests execution, and retrieve = it +at the end of the session, e.g. for applicative benchmarking purposes.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0011-gnu-Add-a-test-less-python-pytest-steps.patch Content-Transfer-Encoding: quoted-printable From=2032ba11f8349b9443585e5da86c190d098c4256e5 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:34:06 +0100 Subject: [PATCH 11/18] gnu: Add a test-less python-pytest-steps. * gnu/packages/python-xyz.scm (python-pytest-steps-minimal): New variable. =2D-- gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 15bd70fa8f..57cc09ae18 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28822,3 +28822,25 @@ (define python-pytest-harvest-minimal "Store data created during your pytest tests execution, and retrieve = it at the end of the session, e.g. for applicative benchmarking purposes.") (license license:bsd-3))) + +(define python-pytest-steps-minimal + (package + (name "python-pytest-steps-minimal") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-steps" version)) + (sha256 + (base32 + "05r2ch7191saj7sw6d47bfa5vnyyj157dl8hvlcc78xx6jyxy46j")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list python-makefun python-wrapt python-tabulate + python-pandas)) + (native-inputs (list python-pytest python-pytest-runner + python-setuptools-scm)) + (home-page "https://github.com/smarie/python-pytest-steps") + (synopsis "Create step-wise / incremental tests in pytest") + (description "Create step-wise / incremental tests in pytest.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0012-gnu-Add-a-test-less-python-pytest-cases.patch Content-Transfer-Encoding: quoted-printable From=20d550923f148fe5ce82ba287821cbf77aed6025b0 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:34:36 +0100 Subject: [PATCH 12/18] gnu: Add a test-less python-pytest-cases. * gnu/packages/python-xyz.scm (python-pytest-cases-minimal): New variable. =2D-- gnu/packages/python-xyz.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 57cc09ae18..cccd4e2b03 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28844,3 +28844,34 @@ (define python-pytest-steps-minimal (synopsis "Create step-wise / incremental tests in pytest") (description "Create step-wise / incremental tests in pytest.") (license license:bsd-3))) + +(define python-pytest-cases-minimal + (package + (name "python-pytest-cases-minimal") + (version "3.6.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-cases" version)) + (sha256 + (base32 + "1g3lp4m19fk83kl2b4akwg7wqqaqlfzp4v6qcb0hq27161xyh8yl")))) + (build-system python-build-system) + (propagated-inputs (list python-decopatch-minimal python-makefun)) + (native-inputs (list python-pytest + python-pytest-runner + python-setuptools-scm + python-pytest-asyncio + python-pytest-harvest-minimal + python-pytest-steps-minimal)) + (home-page "https://github.com/smarie/python-pytest-cases") + (synopsis "Separate test code from test cases in @samp{pytest}") + (description + "@samp{pytest-cases} leverages @samp{pytest} and its great +@samp{@@pytest.mark.parametrize decorator}, so that you can @strong{separa= te +your test cases from your test functions}. In addition, @samp{pytest-case= s} +provides several useful goodies to empower @samp{pytest}. In particular it +improves the fixture mechanism to support \"fixture unions\". This is a +@strong{major change} in the internal @samp{pytest} engine, unlocking many +possibilities such as using fixture references as parameter values in a te= st +function.") + (license license:bsd-3))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0013-gnu-Add-python-decopatch.patch Content-Transfer-Encoding: quoted-printable From=20208f3b0f2b4771902b8be1faeb445da39ed06bf5 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:35:02 +0100 Subject: [PATCH 13/18] gnu: Add python-decopatch. * gnu/packages/python-xyz.scm (python-decopatch): New variable. =2D-- gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index cccd4e2b03..d735e62a80 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28875,3 +28875,24 @@ (define python-pytest-cases-minimal possibilities such as using fixture references as parameter values in a te= st function.") (license license:bsd-3))) + +(define-public python-decopatch + (package + (inherit python-decopatch-minimal) + (name "python-decopatch") + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + (delete-file "decopatch/tests/test_main2.py") + (delete-file + "decopatch/tests/test_main2_parametrizers.py") + (delete-file "decopatch/tests/test_introspection.py") + (delete-file + "decopatch/tests/test_introspection_base.py") + (substitute* "decopatch/tests/test_doc_advanced.py" + (("'uses_introspection', \\[True, False\\]") + "'uses_introspection', [False]"))))))) + (native-inputs (list python-pytest python-pytest-runner + python-pytest-cases-minimal python-setuptools-scm + python-pytest-logging)))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0014-gnu-Add-python-pytest-cases.patch Content-Transfer-Encoding: quoted-printable From=200bd5e596cff51d3b5d6c2fe19d75a5e0b2126cac Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:35:28 +0100 Subject: [PATCH 14/18] gnu: Add python-pytest-cases. * gnu/packages/python-xyz.scm (python-pytest-cases): New variable. =2D-- gnu/packages/python-xyz.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d735e62a80..ea4de06935 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28896,3 +28896,11 @@ (define-public python-decopatch (native-inputs (list python-pytest python-pytest-runner python-pytest-cases-minimal python-setuptools-scm python-pytest-logging)))) + +(define-public python-pytest-cases + (package + (inherit python-pytest-cases-minimal) + (name "python-pytest-cases") + (arguments + '()) + (propagated-inputs (list python-decopatch python-makefun)))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0015-gnu-Add-python-pytest-harvest.patch Content-Transfer-Encoding: quoted-printable From=202684ac7c595006f90730b5f15f2c6839335f39a3 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:35:49 +0100 Subject: [PATCH 15/18] gnu: Add python-pytest-harvest. * gnu/packages/python-xyz.scm (python-pytest-harvest): New variable. =2D-- gnu/packages/python-xyz.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index ea4de06935..6d57192ccb 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28904,3 +28904,21 @@ (define-public python-pytest-cases (arguments '()) (propagated-inputs (list python-decopatch python-makefun)))) + +(define-public python-pytest-harvest + (package + (inherit python-pytest-harvest-minimal) + (name "python-pytest-harvest") + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'move-pytests-plugins + (lambda _ + (rename-file "pytest_harvest/tests/conftest.py" + "conftest.py")))))) + (native-inputs (list python-pytest + python-pytest-runner + python-setuptools-scm + python-pytest-cases + python-tabulate + python-pandas)) + (propagated-inputs (list python-decopatch python-makefun python-six)))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0016-gnu-Add-python-pytest-steps.patch Content-Transfer-Encoding: quoted-printable From=20db56ec3ba0e91a3b29c2a73282127249954ee45e Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 22:36:06 +0100 Subject: [PATCH 16/18] gnu: Add python-pytest-steps. * gnu/packages/python-xyz.scm (python-pytest-steps): New variable. =2D-- gnu/packages/python-xyz.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6d57192ccb..0f85efd085 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -28922,3 +28922,17 @@ (define-public python-pytest-harvest python-tabulate python-pandas)) (propagated-inputs (list python-decopatch python-makefun python-six)))) + +(define-public python-pytest-steps + (package + (inherit python-pytest-steps-minimal) + (name "python-pytest-steps") + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'move-pytests-plugins + (lambda _ + (rename-file "pytest_steps/tests/conftest.py" + "conftest.py")))))) + (native-inputs (list python-pytest python-pytest-runner + python-setuptools-scm python-pytest-cases + python-pytest-harvest)))) =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0017-gnu-python-pooch-Update-to-1.5.2.patch Content-Transfer-Encoding: quoted-printable From=203cc9befb02d2c6b79ee222e918ed6ce80965e4f7 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 23:00:37 +0100 Subject: [PATCH 17/18] gnu: python-pooch: Update to 1.5.2. * gnu/packages/python-xyz.scm (python-pooch): Update to 1.5.2. [native-inputs]: Add python-setuptools-scm. =2D-- gnu/packages/python-xyz.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 0f85efd085..b386bd93bf 100644 =2D-- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -22095,18 +22095,20 @@ (define-public pybind11 (define-public python-pooch (package (name "python-pooch") =2D (version "1.3.0") + (version "1.5.2") (source (origin (method url-fetch) (uri (pypi-uri "pooch" version)) (sha256 =2D (base32 "1618adsg9r8fsv422sv35z1i723q3a1iir5v7dv2sklh4pl4im1h"))= )) + (base32 "109my6dwj2r6gxfzkw973ivy4dmmw02pwxijz5fl1p7vvvqv4sar")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;requires online data (propagated-inputs (list python-appdirs python-packaging python-requests)) + (native-inputs + (list python-setuptools-scm)) (home-page "https://github.com/fatiando/pooch") (synopsis "Manage your Python library's sample data files") (description =2D-=20 2.34.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0018-gnu-Add-python-mne.patch Content-Transfer-Encoding: quoted-printable From=20dc0467eec2630fc6067a7b3d49d44869497f1f8e Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 20 Jan 2022 23:21:25 +0100 Subject: [PATCH 18/18] gnu: Add python-mne. * gnu/packages/python-science.scm (python-mne): New variable. =2D-- gnu/packages/python-science.scm | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.= scm index 97cca59644..85af5b42cc 100644 =2D-- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -39,6 +39,7 @@ (define-module (gnu packages python-science) #:use-module (gnu packages databases) #:use-module (gnu packages gcc) #:use-module (gnu packages image-processing) + #:use-module (gnu packages jupyter) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) @@ -1211,3 +1212,55 @@ (define-public python-nitime to express with compact and semantically clear code.") (license license:bsd-3))) =20 +(define-public python-mne + (package + (name "python-mne") + (version "0.24.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "mne" version)) + (sha256 + (base32 + "039h0pwcvl4ywfa4ij7w6x61czd322csqr59yhzfil3a7b8gzjrq")))) + (build-system python-build-system) + (arguments + (list #:tests? #f ;The test data are not distributed + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-home + (lambda _ + (setenv "HOME" + (getcwd)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" "mne"))))))) + (propagated-inputs (list python-numpy python-scipy)) + (native-inputs (list python-check-manifest + python-codespell + python-edflib + python-eeglabio + python-flake8 + python-flake8-array-spacing + python-imageio-ffmpeg + python-nbclient + python-nitime + python-numpydoc + python-pooch + python-pydocstyle + python-pytest + python-pytest-cov + python-pytest-harvest + python-pytest-timeout + python-sphinx-gallery + python-twine + python-wheel)) + (home-page "https://mne.tools/dev/") + (synopsis "MNE-Python project for MEG and EEG data analysis") + (description + "Open-source Python package for exploring, visualizing, and +analyzing human neurophysiological data: MEG, EEG, sEEG, ECoG, NIRS, and +more.") + (license license:bsd-3))) + + =2D-=20 2.34.0 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEq4yIHjMvkliPpwQnO7C8EjLYuCwFAmHqbcwACgkQO7C8EjLY uCx2xgwApGpT4brVzv4jV/qZzmXxoes4ylxiy8TFszp2uNtf3WFLzqRuA03jcGRY jhuN3kLM4SYw9rtrU3+5vZivvZWUKA86hyJvRIPGmCbwSwfTp1zGyZ2Pd1gZ3Jpj q8T0LuXRptze1a88K3M3ZY4VeqTrswEQjReJi+21KAuJfpmqn5RONv0QedwdoOSM AEpftOgs4tT9Vx8xmQTb9Y+WB+2ar0W8/LgBuJfR89ZXvUA+LNIPoBDbCtO1ssg0 nipii1/w+znhIMtG7efQoggr4D1yBDQt3Wy4dQa5Kq64A7gH0/pNKqxQnOmAjrSm UvKFOh1GC8tnjZ+QL36rLBF0Wgroe8rP/2fujfGV/RvTbWBJRRGjegWvzKg/ZgMs BNE3fsVPcszRsUbdrVBIbqFaxGBwDVod+pOnPKx24TBrUodJq1XlaaeJ8FqfH02K l1tMTgxc2GYJ+y3aoe8PGKRcrpf279P2A8ZvGt6yYr/xg3BBbn2o5pKJsEvJBXrA 7TmRUtGa =7VS2 -----END PGP SIGNATURE----- --==-=-=--