Je suis pas sur qu'on était en train de chercher une solution qui ne sert à rien ;) La discussion me semblait bien plus générale: savoir sentir les cas foireux, les mauvais usages, les mauvais designs. Remplacer un eval par un python sandboxé pour faire une calculette, c'est persister dans son erreur.
Maintenant tu vas pas aller bien loin avec literal_eval qui comme son nom l'indique n'évalue que des literaux… Cool tu peux parser des int et des float. Le reste est à faire, tu vas donc basculer sur ast.walk en faisant gaffe à pas faire de conneries. Retour plus ou moins à la case départ. Mais au fait avec literal_eval; ton calculteur tu voulais vraiment lui laisser parser des dicts ?
Maintenant le mec qui veut se coder sa calculatrice. Il va définir son cahier des charges (quelles constructions sont autorisées, quels impacts niveau CPU et mémoire etc.), et il va soit utiliser un des 1000 projets qui doivent faire ca. Soit se coder son parseur en une aprèm si il veut quelque chose de très précis. Là encore soit à l'ancienne type premier projet de compil, soit en utilisant un lib de parsing comme il en existe tant. Bref on s'en fou un peu en fait.
[^] # Re: Autre bot
Posté par ckyl . En réponse au journal Justabot le bot XMPP ٩(͡๏̯͡๏)۶. Évalué à 3.
Je suis pas sur qu'on était en train de chercher une solution qui ne sert à rien ;) La discussion me semblait bien plus générale: savoir sentir les cas foireux, les mauvais usages, les mauvais designs. Remplacer un eval par un python sandboxé pour faire une calculette, c'est persister dans son erreur.
Maintenant tu vas pas aller bien loin avec
literal_evalqui comme son nom l'indique n'évalue que des literaux… Cool tu peux parser desintet desfloat. Le reste est à faire, tu vas donc basculer surast.walken faisant gaffe à pas faire de conneries. Retour plus ou moins à la case départ. Mais au fait avecliteral_eval; ton calculteur tu voulais vraiment lui laisser parser des dicts ?Maintenant le mec qui veut se coder sa calculatrice. Il va définir son cahier des charges (quelles constructions sont autorisées, quels impacts niveau CPU et mémoire etc.), et il va soit utiliser un des 1000 projets qui doivent faire ca. Soit se coder son parseur en une aprèm si il veut quelque chose de très précis. Là encore soit à l'ancienne type premier projet de compil, soit en utilisant un lib de parsing comme il en existe tant. Bref on s'en fou un peu en fait.