guix_mirror_bot pushed a commit to branch python-team
in repository guix.

commit 7ab93dad0e6267344a1f8701ee1d7d2739d76042
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Sun Dec 7 21:45:38 2025 +0000

    gnu: python-pandas: Update to 2.3.3.
    
    * gnu/packages/python-science.scm (python-pandas-2): Update to 2.3.3 and
    rename to python-pandas.
    [arguments] <test-flags>: Rework skipped tests.
    <phases>: Remove 'pre-check, and 'patch-which; use custom 'check.
    [inputs]: Remove which, it's implemanted with Python's `shutil.which()'.
    [propagated-inputs]: Remove python-jinja2, python-matplotlib,
    python-openpyxl, python-xlrd, and python-xlsxwriter.
    [native-inputs]: Remove python-beautifulsoup4, python-cython,
    python-html5lib, python-matplotlib, python-openpyxl,
    python-pytest-localserver, and python-pytest-mock; add meson and
    tzdata-for-tests.
    (python-pandas-2): Deprecate variable in favor of python-pandas.
    
    Change-Id: Ib4aefbbc33f46f793430ac396cbe5e6c4107ec2f
---
 gnu/packages/python-science.scm | 167 +++++++++++++++++-----------------------
 1 file changed, 72 insertions(+), 95 deletions(-)

diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 988c45357e..108dc8dd2f 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -104,6 +104,7 @@
   #:use-module (gnu packages xorg)
   #:use-module (guix packages)
   #:use-module (guix gexp)
+  #:use-module (guix deprecation)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
@@ -4008,72 +4009,33 @@ library.")
 tissue-specificity metrics for gene expression.")
     (license license:gpl3+)))
 
-(define-public python-pandas-2
+(define-public python-pandas
   (package
     (name "python-pandas")
-    (version "2.2.3")
+    (version "2.3.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/pandas-dev/pandas";)
-             (commit (string-append "v" version))))
+              (url "https://github.com/pandas-dev/pandas";)
+              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00f6jnplwg7iffnxdm4hpfls0ncbarc23933xq1rm5nk5g8dcldx"))
+        (base32 "0qf4frgj31kd9i544n8v03a0bv9mgml3f7n9n1rik187q3r8ygfg"))
        (patches (search-patches "python-pandas-2-no-pytz_datetime.patch"))))
     (build-system pyproject-build-system)
     (arguments
      (list
+      ;; tests: 174115 passed, 24224 skipped, 990 xfailed, 77 xpassed, 110 
warnings
       #:test-flags
-      #~(list "--pyargs" "pandas"
-              ;; "--exitfirst"
-              ;; XXX The tests won't even start on my 16 core laptop, but they
-              ;; start with 4 processes.
+      #~(list "-m" (string-join
+                    (list "not db" "network" "single_cpu" "slow" "slow_arm")
+                    " and not ")
               "--numprocesses" (number->string (min 4 (parallel-job-count)))
-              "-m" "not slow and not network and not db"
-              ;; All tests errored.
-              "--ignore=pandas/tests/io/test_clipboard.py"
               "-k" (string-join
-                    (list
-                     "not test_git_version"
-                     "test_show_versions_console"
-                     ;; Not testing ~ expansion.
-                     "test_expand_user"
-                     "test_get_handle_with_path"
-                     ;; These test access the internet (see:
-                     ;; https://github.com/pandas-dev/pandas/issues/45085).:
-                     ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml]
-                     ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree]
-                     "test_wrong_url"
-                     ;; TODO: Missing input
-                     "TestS3"
-                     "s3"
-                     ;; This test fails when run with pytest-xdist
-                     ;; (see: 
https://github.com/pandas-dev/pandas/issues/39096).
-                     "test_memory_usage"
-                     "test_parsing_tzlocal_deprecated"
-                     ;; PyArrow is optional.
-                     "test_style_bar_with_pyarrow_NA_values"
-                     "test_very_negative_exponent"
-                     "test_usecols_no_header_pyarrow"
-                     "test_scientific_no_exponent[pyarrow-None]"
-                     "test_inspect_getmembers"
-                     ;; SciPy introduces cycle, optional.
-                     "test_savefig"
-                     ;; It requires a fresh python-tzdata, including new
-                     ;; timezones.
-                     "test_repr"
-                     ;; Fails with [email protected], fixed on main branch.
-                     ;; See: 
<https://github.com/pandas-dev/pandas/issues/61557>.
-                     "test_groupby_raises_category_on_category"
-                     ;; These tests should be skipped on 32bit systems:
-                     ;; Cannot cast array data from dtype('int64') to 
dtype('int32')
-                     #$@(if (not (target-64bit?))
-                            #~("test_inf_bound_infinite_recursion"
-                               "test_reindex_behavior_with_interval_index"
-                               "test_repeating_interval_index_with_infs")
-                            #~()))
+                    (list "not test_git_version"
+                          "test_parsing_tzlocal_deprecated"
+                          "test_show_versions_console")
                     " and not "))
       #:phases
       #~(modify-phases %standard-phases
@@ -4082,57 +4044,72 @@ tissue-specificity metrics for gene expression.")
               (with-output-to-file "_version.py"
                 (lambda _
                   (display
-                   (string-append "__version__ = \""
-                                  #$(package-version this-package)
-                                  "\""))))))
-          (add-before 'check 'pre-check
-            (lambda _
-              (setenv "HOME" ".")
-              ;; Skip tests that require lots of resources.
-              (setenv "PANDAS_CI" "1")))
-          (add-after 'unpack 'patch-which
-            (lambda _
-              (substitute* "pandas/io/clipboard/__init__.py"
-                (("^WHICH_CMD = .*")
-                 (string-append "WHICH_CMD = \""
-                                #$(this-package-input "which")
-                                "/bin/which\"\n")))))
-          ;; The compiled libraries are only in the output at this point,
-          ;; but they are needed to run tests.
-          ;; FIXME: This should be handled by the pyargs pytest argument,
-          ;; but is not for some reason.
-          (add-before 'check 'pre-check
-            (lambda _
-              (copy-recursively
-               (string-append #$output
-                              "/lib/python3.11/site-packages/pandas/_libs")
-               "pandas/_libs"))))))
+                   (string-append "__version__ = \"" #$version "\""))))))
+          (replace 'check
+            (lambda* (#:key inputs outputs test-flags tests? 
#:allow-other-keys)
+              (when tests?
+                (setenv "HOME" "/tmp")
+                (with-directory-excursion
+                    (string-append (string-append (site-packages inputs 
outputs)
+                                                  "/pandas"))
+                  (apply invoke "pytest" "-vv" test-flags))))))))
     (propagated-inputs
-     (list python-dateutil
-           python-jinja2
-           python-matplotlib
-           python-numpy
-           python-openpyxl
+     (list python-numpy
+           python-dateutil
            python-pytz
            python-tzdata
-           python-xlrd
-           python-xlsxwriter))
+           ;; XXX: Pandas lists a lot of optional dependencies which are not
+           ;; hard requirements, leave them listed here and commented out for
+           ;; the reference purpose. Try to keep closure as bare minimal as
+           ;; possible.
+           ;;
+           ;; [optional]
+           ;; python-adbc-driver-postgresql
+           ;; python-adbc-driver-sqlite
+           ;; python-beautifulsoup4
+           ;; python-bottleneck
+           ;; python-fastparquet
+           ;; python-fsspec
+           ;; python-gcsfs
+           ;; python-html5lib
+           ;; python-hypothesis
+           ;; python-jinja2
+           ;; python-lxml
+           ;; python-matplotlib
+           ;; python-numba
+           ;; python-numexpr
+           ;; python-odfpy
+           ;; python-openpyxl
+           ;; python-psycopg2
+           ;; python-pyarrow
+           ;; python-pyiceberg
+           ;; python-pymysql
+           ;; python-pyqt5
+           ;; python-pyreadstat
+           ;; python-python-calamine
+           ;; python-pytz
+           ;; python-pyxlsb
+           ;; python-qtpy
+           ;; python-s3fs
+           ;; python-scipy
+           ;; python-sqlalchemy
+           ;; python-tables
+           ;; python-tabulate
+           ;; python-xarray
+           ;; python-xlrd
+           ;; python-xlsxwriter
+           #;python-zstandard))
     (inputs
-     (list which xclip xsel))
+     (list xclip xsel))
     (native-inputs
-     (list meson-python
-           python-beautifulsoup4
-           python-cython
-           python-html5lib
+     (list meson
+           meson-python
            python-lxml
-           python-matplotlib
-           python-openpyxl
-           python-pytest-asyncio
            python-pytest
-           python-pytest-localserver
-           python-pytest-mock
+           python-pytest-asyncio
            python-pytest-xdist
-           python-versioneer))
+           python-versioneer
+           tzdata-for-tests))
     (home-page "https://pandas.pydata.org";)
     (synopsis "Data structures for data analysis, time series, and statistics")
     (description
@@ -4143,7 +4120,7 @@ and intuitive.  It aims to be the fundamental high-level 
building block for
 doing practical, real world data analysis in Python.")
     (license license:bsd-3)))
 
-(define-public python-pandas python-pandas-2)
+(define-deprecated/public-alias python-pandas-2 python-pandas)
 
 (define-public python-pandas-stubs
   (package

Reply via email to