-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"meca" accessor debate #15
Comments
Je ne suis pas sûr que le namespace "meca" réduit l'expérience utilisateur pour plusieurs raisons.
xarray nous permet d'éviter de ré-implémenter beaucoup de fonctions parce qu'ils en supportent déjà beaucoup (computation, interpolation, groupby) et parce que c'est label-based. Par exemple, dans l'ancien pyomeca on avait besoin de réimplémenter Bref, je comprends ton point mais je trouve que l'ancien Pyomeca était pire niveau user friendly 😃 . L'héritage de classe est nice mais dangereux avec des classes si complexes et standards que des numpy |
Je suis d'accord avec toi sur ce point. Avoir une interface qui ne reçoit pas tout ce que xarray possède est une excellente chose (et clairement un problème de l'ancienne méthode qu'on avait utilisé)
Je suis aussi d'accord avec cela. Je pense que ce qui me dérange en fait c'est le fait que spontanément les 132 fonctions soient accessibles. Dans le sens où en tant qu'utilisateur, je ne veux qu'avoir accès à ce qui est permis techniquement. Concernant ces 132 fonctions (- 21 = 111?) qui ne sont pas implémentées dans pyomeca, il y a probablement une raison (p.e. ceci n'a pas de sens en terme de Analog, ou on n'a tout simplement pas eu le temps en tant que programmeur), mais dans tous les cas, ceci n'a pas été validé pour utilisation dans pyomeca. Ceci dit, peut-être que techniquement ce n'est juste pas possible... |
En fait, je ne vois pas de cas où une fonction de xarray n'est pas capatible avec pyomeca et inversement. Le workflow que je vois est le suivant. 80% du temps, tu vas manipuler tes données, créer des graphiques et appliquer des fonctions directement avec l'API de xarray car les méthodes sont très généralistes grâces aux labels. Les 20% du temps où tu a besoin d'une fonctionnalité plus "biomécanique", c'est la que tu vas utiliser |
D'accord, donc si on reprend ton exemple de EMG, et c'est peut-être ça qui m'a confondu (puisque je n'ai pas encore vu le code), quelle est la raison pour laquelle "abs" a été réimplémentée? Mon interprétation était que si une fonction aussi de base avait besoin de l'être, alors nous n'utiliserions en réalité à peu près jamais la base. Dernière question! ;) Si je suis un utilisateur lambda, mon workflow pour trouver une fonction est de rechercher si celle-ci apparait en premier dans meca avant normal (pas meca...)? Qu'arrive-t-il avec les fonctions qui ont déjà été réimplémentées? Quelles étaient les raisons pour cela? Mon interprétation était, par exemple, que les dimensions devaient être réajustées (un peu comme axis dans numpy) |
Comme dans l'ancien pyomeca, tout simplement parce qu'il n'y a pas de fonction
Le workflow est de seulement chercher les fonctions "biomécaniques" et plus high-level dans
J'ai enlevé les fonctions qu'on avait réimplémentées qui ne sont plus nécessaires. Voici une sélection, avec le code xarray qui les remplace:
Et d'autres fonctions reliées à la logique de subclass ( |
Parfait, je pense que j'adhère à l'idée
Je voulais dire les 21 fonctions, est-ce qu'elles sont toutes des implémentations ou c'est des surcharges des fonctions xarray? Si c'est des surcharges, qu'elles étaient les raisons de surcharger Merci pour les réponses! |
Oui il est nécessaire pour distinguer les (très) nombreuses fonctions de xarray qui nous sont utiles et les fonctions de pyomeca. voir ici
En un coup d'oeil, je peux distinguer ce qui est implémenté dans xarray (sans le
meca
) et dans pyomeca.Le pipeline EMG est un cas un peu extrême, dans le sens où c'est rare qu'on utilise autant de fonctions de pyomeca dans un appel de fonction.
The text was updated successfully, but these errors were encountered: