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

commit 64095a8e02fe2da146b8d4e4d79ef143559f4ccc
Author: Hugo Buddelmeijer <[email protected]>
AuthorDate: Tue Dec 16 22:41:07 2025 +0100

    gnu: python-pyudev: Update to 0.24.4.
    
    * gnu/packages/admin.scm (python-pyudev): Update to 0.24.4.
    [source]: Switch to git-fetch for tests.
    [build-system]: Switch to pyproject-build-system.
    [arguments]: Use gexps.
    <#:tests?>: Enable tests.
    <#:test-flags>: Disable tests that need /sys/devices.
    <#:phases>: Update 'patch-ctypes-udev phase.
    [propagated-inputs]: Remove python-six.
    [native-inputs]: Remove python-docutils, python-hypothesis, python-mock,
    and python-sphinx; add python-setuptools.
    
    Change-Id: I70834b09e280ef52c621b2a98455a8b7897f4367
    Modified-by: Sharlatan Hellseher <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/admin.scm | 116 ++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 91 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 891cedd3bb..801e1a7dd0 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -5130,36 +5130,102 @@ support forum.  It runs with the @code{/exec} command 
in most IRC clients.")
 (define-public python-pyudev
   (package
     (name "python-pyudev")
-    (version "0.22.0")
+    (version "0.24.4")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "pyudev" version))
-        (sha256
-          (base32
-            "0xmj6l08iih2js9skjqpv4w7y0dhxyg91zmrs6v5aa65gbmipfv9"))))
-    (build-system python-build-system)
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/pyudev/pyudev";)
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1m7xrsazbij5dcmnirn9hq6cwrfmzam5mr3kmvvcgnh24nhm401x"))))
+    (build-system pyproject-build-system)
     (arguments
-     `(#:tests? #f ; Tests require /sys
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-ctypes-udev
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((eudev (assoc-ref inputs "eudev")))
-               (substitute* "src/pyudev/core.py"
-                (("'udev'")
-                 (string-append "'" eudev "/lib/libudev.so'")))
-               (substitute* "src/pyudev/_ctypeslib/utils.py"
+     (list
+      ;; tests: 46 passed, 36 skipped, 79 deselected, 2 warnings
+      #:test-flags
+      ;; These tests actually try to read /sys/devices:
+      #~(list "-k" (string-join
+                    (list "not  test_action"
+                          "test_action_mock"
+                          "test_ancestors"
+                          "test_anything"
+                          "test_asbool"
+                          "test_asint"
+                          "test_asstring"
+                          "test_attributes"
+                          "test_contains_mock"
+                          "test_deprecated_handler"
+                          "test_device_node"
+                          "test_device_number"
+                          "test_device_ordering"
+                          "test_device_path"
+                          "test_device_sys_name"
+                          "test_driver"
+                          "test_equality"
+                          "test_fake"
+                          "test_fake_monitor"
+                          "test_find_parent_no_devtype_mock"
+                          "test_find_parent_with_devtype_mock"
+                          "test_from_device_file"
+                          "test_from_device_number"
+                          "test_from_device_number_wrong_type"
+                          "test_from_name"
+                          "test_from_name_no_device_in_existing_subsystem"
+                          "test_from_path"
+                          "test_from_path_strips_leading_slash"
+                          "test_from_sys_path"
+                          "test_getitem"
+                          "test_getitem"
+                          "test_getitem_nonexisting"
+                          "test_hash"
+                          "test_inequality"
+                          "test_is_initialized"
+                          "test_is_initialized_mock"
+                          "test_iteration"
+                          "test_iteration_mock"
+                          "test_key_subset"
+                          "test_length"
+                          "test_links"
+                          "test_match"
+                          "test_match_parent"
+                          "test_match_property_bool"
+                          "test_match_subsystem"
+                          "test_match_subsystem_nomatch_complete"
+                          "test_match_subsystem_nomatch_unfulfillable"
+                          "test_name"
+                          "test_non_iterable"
+                          "test_parent"
+                          "test_path"
+                          "test_sequence_number"
+                          "test_subsystem"
+                          "test_sys_number"
+                          "test_sys_path"
+                          "test_tags"
+                          "test_time_since_initialized"
+                          "test_time_since_initialized_mock"
+                          "test_traverse"
+                          "test_type"
+                          "test_unsetitem")
+                    " and not "))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-ctypes-udev
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/pyudev/core.py"
+                (("\"udev\"")
+                 (format #f "~s"
+                         (search-input-file inputs "/lib/libudev.so"))))
+              (substitute* "src/pyudev/_ctypeslib/utils.py"
                 ;; Use absolute paths instead of keys.
-                (("= find_library") "= "))
-               #t))))))
+                (("= find_library") "= ")))))))
+    (native-inputs
+     (list python-pytest
+           python-setuptools))
     (inputs
      (list eudev))
-    (propagated-inputs
-     (list python-six))
-    (native-inputs
-     (list python-docutils python-hypothesis python-mock python-pytest
-           python-sphinx))
     (home-page "https://pyudev.readthedocs.io/";)
     (synopsis "Python udev binding")
     (description "This package provides @code{udev} bindings for Python.")

Reply via email to