gnu: python-pandas: Update to 1.5.3.
* gnu/packages/python-science.scm (python-pandas): Update to 1.5.3. [build-system]: Use pyproject-build-system. [arguments]: Use G-expression; move test flags to #:test-flags; add phase 'patch-build-system; fix substitution of "which" executable; remove 'enable-parallel-build; remove custom 'check phase; add 'pre-check phase. [propagated-inputs]: Add python-matplotlib. [native-inputs]: Replace python-cython with python-cython-0.29.35. Change-Id: I9d09971f707b925f469e29be67fe040c181314ff
This commit is contained in:
		
							parent
							
								
									fbe0233575
								
							
						
					
					
						commit
						a8c1d812a0
					
				
					 1 changed files with 58 additions and 56 deletions
				
			
		| 
						 | 
					@ -480,71 +480,73 @@ tissue-specificity metrics for gene expression.")
 | 
				
			||||||
(define-public python-pandas
 | 
					(define-public python-pandas
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pandas")
 | 
					    (name "python-pandas")
 | 
				
			||||||
    (version "1.4.4")
 | 
					    (version "1.5.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "pandas" version))
 | 
					       (uri (pypi-uri "pandas" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0ryv66s9cvd27q6a985vv556k2qlnlrdna2z7qc7bdhphrrhsv5b"))))
 | 
					        (base32 "1cdhngylzh352wx5s3sjyznn7a6kmjqcfg97hgqm5h3yb9zgv8vl"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system pyproject-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:modules ((guix build utils)
 | 
					     (list
 | 
				
			||||||
                  (guix build python-build-system)
 | 
					      #:test-flags
 | 
				
			||||||
                  (ice-9 ftw)
 | 
					      '(list "--pyargs" "pandas"
 | 
				
			||||||
                  (srfi srfi-1)
 | 
					             "-n" (number->string (parallel-job-count))
 | 
				
			||||||
                  (srfi srfi-26))
 | 
					             "-m" "not slow and not network and not db"
 | 
				
			||||||
       #:phases
 | 
					             "-k"
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					             (string-append
 | 
				
			||||||
         (add-after 'unpack 'enable-parallel-build
 | 
					              ;; TODO: Missing input
 | 
				
			||||||
           (lambda _
 | 
					              "not TestS3"
 | 
				
			||||||
             (substitute* "setup.py"
 | 
					              " and not s3"
 | 
				
			||||||
               (("\"-j\", type=int, default=1")
 | 
					              ;; No module named 'pandas.io.sas._sas'
 | 
				
			||||||
                (format #f "\"-j\", type=int, default=~a"
 | 
					              " and not test_read_expands_user_home_dir"
 | 
				
			||||||
                        (parallel-job-count))))))
 | 
					              " and not test_read_non_existent"
 | 
				
			||||||
         (add-after 'unpack 'patch-which
 | 
					              ;; Unknown failures
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					              " and not test_switch_options"
 | 
				
			||||||
             (let ((which (assoc-ref inputs "which")))
 | 
					              ;; Crashes
 | 
				
			||||||
               (substitute* "pandas/io/clipboard/__init__.py"
 | 
					              " and not test_bytes_exceed_2gb"
 | 
				
			||||||
                 (("^WHICH_CMD = .*")
 | 
					              ;; get_subplotspec() returns None; possibly related to
 | 
				
			||||||
                  (string-append "WHICH_CMD = \"" which "\"\n"))))))
 | 
					              ;; https://github.com/pandas-dev/pandas/issues/54577
 | 
				
			||||||
         (add-before 'check 'prepare-x
 | 
					              " and not test_plain_axes"
 | 
				
			||||||
           (lambda _
 | 
					              ;; This test fails when run with pytest-xdist
 | 
				
			||||||
             (system "Xvfb &")
 | 
					              ;; (see https://github.com/pandas-dev/pandas/issues/39096).
 | 
				
			||||||
             (setenv "DISPLAY" ":0")
 | 
					              " and not test_memory_usage"))
 | 
				
			||||||
             ;; xsel needs to write a log file.
 | 
					      #:phases
 | 
				
			||||||
             (setenv "HOME" "/tmp")))
 | 
					       #~(modify-phases %standard-phases
 | 
				
			||||||
         (replace 'check
 | 
					           (add-after 'unpack 'patch-build-system
 | 
				
			||||||
           (lambda* (#:key tests? #:allow-other-keys)
 | 
					             (lambda _
 | 
				
			||||||
             (let ((build-directory
 | 
					 | 
				
			||||||
                    (string-append
 | 
					 | 
				
			||||||
                     (getcwd) "/build/"
 | 
					 | 
				
			||||||
                     (first (scandir "build"
 | 
					 | 
				
			||||||
                                     (cut string-prefix? "lib." <>))))))
 | 
					 | 
				
			||||||
               (substitute* "pyproject.toml"
 | 
					               (substitute* "pyproject.toml"
 | 
				
			||||||
                 ;; Not all data files are distributed with the tarball.
 | 
					                 ;; Not all data files are distributed with the tarball.
 | 
				
			||||||
                 (("--strict-data-files ") ""))
 | 
					                 (("--strict-data-files ") "")
 | 
				
			||||||
               (with-directory-excursion build-directory
 | 
					                 ;; Unknown property "asyncio_mode"
 | 
				
			||||||
                 (when tests?
 | 
					                 (("asyncio_mode = \"strict\"") ""))))
 | 
				
			||||||
                   (invoke "pytest" "-vv" "pandas" "--skip-slow"
 | 
					           (add-after 'unpack 'patch-which
 | 
				
			||||||
                           "--skip-network"
 | 
					             (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
                           "-n" (number->string (parallel-job-count))
 | 
					               (substitute* "pandas/io/clipboard/__init__.py"
 | 
				
			||||||
                           "-k"
 | 
					                 (("^WHICH_CMD = .*")
 | 
				
			||||||
                           (string-append
 | 
					                  (string-append "WHICH_CMD = \""
 | 
				
			||||||
                            ;; These test access the internet (see:
 | 
					                                 (search-input-file inputs "/bin/which")
 | 
				
			||||||
                            ;; https://github.com/pandas-dev/pandas/issues/45085).:
 | 
					                                 "\"\n")))))
 | 
				
			||||||
                            ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml]
 | 
					           (add-before 'check 'prepare-x
 | 
				
			||||||
                            ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree]
 | 
					             (lambda _
 | 
				
			||||||
                            "not test_wrong_url"
 | 
					               (system "Xvfb &")
 | 
				
			||||||
                            ;; TODO: Missing input
 | 
					               (setenv "DISPLAY" ":0")
 | 
				
			||||||
                            " and not TestS3"
 | 
					               ;; xsel needs to write a log file.
 | 
				
			||||||
                            " and not s3"
 | 
					               (setenv "HOME" "/tmp")))
 | 
				
			||||||
                            ;; This test fails when run with pytest-xdist
 | 
					           ;; The compiled libraries are only in the output at this point,
 | 
				
			||||||
                            ;; (see:
 | 
					           ;; but they are needed to run tests.
 | 
				
			||||||
                            ;; https://github.com/pandas-dev/pandas/issues/39096).
 | 
					           ;; FIXME: This should be handled by the pyargs pytest argument,
 | 
				
			||||||
                            " and not test_memory_usage"))))))))))
 | 
					           ;; but is not for some reason.
 | 
				
			||||||
 | 
					           (add-before 'check 'pre-check
 | 
				
			||||||
 | 
					             (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					               (copy-recursively
 | 
				
			||||||
 | 
					                (string-append (site-packages inputs outputs)
 | 
				
			||||||
 | 
					                               "/pandas/_libs")
 | 
				
			||||||
 | 
					                "pandas/_libs"))))))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     (list python-jinja2
 | 
					     (list python-jinja2
 | 
				
			||||||
 | 
					           python-matplotlib
 | 
				
			||||||
           python-numpy
 | 
					           python-numpy
 | 
				
			||||||
           python-openpyxl
 | 
					           python-openpyxl
 | 
				
			||||||
           python-pytz
 | 
					           python-pytz
 | 
				
			||||||
| 
						 | 
					@ -554,7 +556,7 @@ tissue-specificity metrics for gene expression.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     (list which xclip xsel))
 | 
					     (list which xclip xsel))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     (list python-cython
 | 
					     (list python-cython-0.29.35
 | 
				
			||||||
           python-beautifulsoup4
 | 
					           python-beautifulsoup4
 | 
				
			||||||
           python-lxml
 | 
					           python-lxml
 | 
				
			||||||
           python-html5lib
 | 
					           python-html5lib
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue