Closed alhyss closed 1 year ago
La résolution de cette issue conditionne la compatibilité de Plume avec RDFLib 6.2.0+.
À partir de RDFLib 6.2.0, les égalités de chemins ne sont plus vérifiées.
En 6.1.1 :
>>> from rdflib import DCTERMS, DCAT >>> DCAT.dataset / DCTERMS.title == DCAT.dataset / DCTERMS.title True
En 6.2.0 et en 6.3.0 :
>>> from rdflib import DCTERMS, DCAT >>> DCAT.dataset / DCTERMS.title == DCAT.dataset / DCTERMS.title False
Il n'y a rien dans la note de version de la 6.2.0 qui laisse à penser que ce soit un changement volontaire, mais je pense que c'est lié au pull request 1528. Le correctif supprime la méthode Path.__eq__ alors que la documentation de functools.total_ordering dit :
Path.__eq__
functools.total_ordering
The class must define one of __lt__(), __le__(), __gt__(), or __ge__(). In addition, the class should supply an __eq__() method.
__lt__()
__le__()
__gt__()
__ge__()
__eq__()
En rajoutant dans le code de la 6.3.0 la méthode Path.__eq__ telle qu'elle était définie dans la 6.1.1, les comparaisons fonctionnent de nouveau.
def __eq__(self, other): return repr(self) == repr(other)
Je vais déjà ouvrir une issue sur le Git de RDFLib.
Comme évoqué : issue sur le Git de RDFLib.
Le problème a été corrigé par la version 6.3.2 de RDFLib publiée hier. Tous les tests qui échouaient en 6.3.0 passent de nouveau.
La résolution de cette issue conditionne la compatibilité de Plume avec RDFLib 6.2.0+.
À partir de RDFLib 6.2.0, les égalités de chemins ne sont plus vérifiées.
En 6.1.1 :
En 6.2.0 et en 6.3.0 :
Il n'y a rien dans la note de version de la 6.2.0 qui laisse à penser que ce soit un changement volontaire, mais je pense que c'est lié au pull request 1528. Le correctif supprime la méthode
Path.__eq__
alors que la documentation defunctools.total_ordering
dit :En rajoutant dans le code de la 6.3.0 la méthode
Path.__eq__
telle qu'elle était définie dans la 6.1.1, les comparaisons fonctionnent de nouveau.Je vais déjà ouvrir une issue sur le Git de RDFLib.