Effectivement c'est un warning, donc ce n'est pas bloquant dans l’exécution du script.
Cependant si l'on ne sait pas ce que c'est, c'est en effet toujours bon de se renseigner.
Bien évidemment, il y a google comme source, mais vous en avez également une autre à disposition : le code de sympy lui même !
Et en l'épluchant rapidement (l'erreur pointée se trouve ici) je remarque que :
- la fonction utilisée se trouve dans le fichier experimental_lambdify.py. Donc qui dit experimental, dit à priori pas encore complètement au point.
- le warning est soulevé lorsqu'il y a un TypeError. Surement sur la ligne
result = complex(self.lambda_func(args))
. (NB: Dans la cas d'un problème de division par 0, on fait un return avant, donc on ne voit pas ce warning). Donc c'est dû à une erreur de type. Maintenant pourquoi est ce qu'il y a un TypeError là, et bien ça il faut retracer le chemin des appels de fonctions, depuis ce que vous vous avez tapé comme commande, jusqu'à la ligne ou le warning est affiché. L'exercice n'est pas toujours aisé, mais c'est très formateur.
- Dans le __init__ de cette class Lambdify, on voit que 3 possibilités sont définies pour self.lambda_func (la première ayant été choisie). Ici le code témoigne donc bien du fait que ça pourrait encore bien changé car ils ne sont pas sûr. Il est d'ailleurs probable que les développeurs se doutaient qu'il existe des cas pathologiques, mais sans en avoir identifié. Leur reporter cela comme un bug, leur offrirait donc un cas test pathologique que leur algorithme est censé tout de même digéré correctement. Donc n'hésitez pas à ouvrir un bugreport.
EDIT : Donc pour répondre plus précisément à votre question, de mon point de vue vous avez soulevé un bug sympy, mais vous auriiez tout de même peut-être la possibilité de le corriger/contourner à la main, en comprenant qu'est ce qui engendre cela, et en agissant dessus. Cela fera certainement un code plus long ceci dit, car vous allez peut être devoir réécrire une partie de la pile d'appel de fonction, pour n'agir que sur une petite sous partie bien précise
Partager