Skip to content

[Refactor] Migration de l'API pyudev pour éviter la dépréciation Mapping (v1.0) #2

Description

@Mathos6

Dans pyudev, l'héritage direct de la classe Device depuis collections.abc.Mapping est obsolète et sera supprimé avec la version 1.0. Les accès directs sous forme de dictionnaire (dev.get(...) ou tests de vérité if dev:) déclenchent des DeprecationWarning.

De plus, l'itérateur direct for action, dev in monitor: renvoie un tuple (action, dev), alors que monitor.poll() renvoie directement l'instance Device.

TODO:

[ ] Remplacer tous les dev.get("ID_VAR") par dev.properties.get("ID_VAR") pour les variables Udev.

[ ] Utiliser dev.attributes.get("authorized") pour la lecture/écriture dans sysfs si besoin via pyudev.

[ ] Remplacer les vérifications d'existence if dev: par if dev is not None: pour éviter le cast booléen obsolète.

[ ] Standardiser la boucle d'écoute du démon (while True avec monitor.poll(timeout=1) ou dépaquetage explicite for action, dev in monitor:) ou encore observer = pyudev.MonitorObserver(monitor, callback=on_udev_event). (Lire la doc pyudev)

Potentiels fichiers impactés:

  • usb/detect.py
  • vm/mount_fs.py

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions