Ces deux bibliothèques font beaucoup plus de choses et bien mieux que ma petite preuve de concept :) Elles me donnent même l'impression de faire le café, ce qui, dans une certaine perspective, est un défaut : ma motivation était d'intégrer l'analyse dimensionnelle au langage. Pint peut permettre de parser des chaînes de caractère écrites en langage naturel, intègre des unités exotiques (enfin, le système impérial, quoi), gère la localisation, ... C'est super, mais c'est bien trop pour être intégré à un langage.
Je cherchais surtout à avoir une syntaxe plus légère pour les unités composées. Avec Pint, on doit écrire des choses comme :
>>>v1=ureg.Quantity(20,'m/s')
ou bien :
>>>v1=20*ureg.m/ureg.s
De mon côté, on écrit :
>>>v1=20*SI.m.s(-1)
On peut ainsi composer ad libidem les unités :
>>>deux_farad=2*SI.m(-2).kg(-1).s(4).A(2)# Lire 2 m2·kg−1·s4·A2>>>deux_farad==2*Si.FTrue>>>grandeur_farfelue=42*SI.hm(2).μs(-3).Gpa.mHz(-1)# Des hectomètres carrés par micromètre cube par miliHertz multipliés par des gigaPascal
L'utilisateur ne manipule jamais de chaînes de caractère pour désigner des unités : le but est faciliter la possibilité de tout contrôler à la compilation et, éventuellement, d'avoir un surcoût quasi-nul à l'exécution. Je ne suis pas allé jusque là dans mon projet, mais peut-être qu'un jour, si je me remotive...
La fonctionnalité de Pint et Turbopy que je jalouse, c'est la gestion des unités logarithmiques. Par conception, c'est impossible avec ma bibliothèque.
[^] # Re: Angle mort des langages de programmation
Posté par sobriquet . En réponse au journal [Letlang] Faire la différence entre un nombre et une quantité. Évalué à 2.
Je ne connaissais pas Astropy, merci !
Ces deux bibliothèques font beaucoup plus de choses et bien mieux que ma petite preuve de concept :) Elles me donnent même l'impression de faire le café, ce qui, dans une certaine perspective, est un défaut : ma motivation était d'intégrer l'analyse dimensionnelle au langage. Pint peut permettre de parser des chaînes de caractère écrites en langage naturel, intègre des unités exotiques (enfin, le système impérial, quoi), gère la localisation, ... C'est super, mais c'est bien trop pour être intégré à un langage.
Je cherchais surtout à avoir une syntaxe plus légère pour les unités composées. Avec Pint, on doit écrire des choses comme :
ou bien :
De mon côté, on écrit :
On peut ainsi composer ad libidem les unités :
L'utilisateur ne manipule jamais de chaînes de caractère pour désigner des unités : le but est faciliter la possibilité de tout contrôler à la compilation et, éventuellement, d'avoir un surcoût quasi-nul à l'exécution. Je ne suis pas allé jusque là dans mon projet, mais peut-être qu'un jour, si je me remotive...
La fonctionnalité de Pint et Turbopy que je jalouse, c'est la gestion des unités logarithmiques. Par conception, c'est impossible avec ma bibliothèque.