Fonction Python et JSLDe Python dans JMP : conversion d’une colonne de dataframe en colonne de datatable : bonnes pratiques et implications sur la vitesse de calcul. Je viens de découvrir cette nouvelle fonction très pratique :
import jmp
jmp.globals['pi'] = 3.1415927
jmp.globals['bB'] = 'Bumble Bee'
print( jmp.globals.items() )
pour définir des variables dans l'espace de noms JSL - comme une version push de la fonction Get() de Python
Il existe certaines restrictions. Par exemple, pour le moment, jmp.globals ne reconnaît pas les fonctions JSL :
::f= function({x},x);
x="hello";
y=5;
z={1,2,3};
aa= associative Array({1,2});
Python Submit("
import jmp
print(jmp.globals)");
la réponse :

Peut-être un problème connexe ?
Tentative de création d'une fonction via run_jsl avec ce code JSL :
import jmp
jmp.run_jsl('x="hello";Caption(x)') # OK
jmp.run_jsl('f= function({x},x)') # crash
... provoque un accident !?!
Lorsque vous exécuterez le code ligne par ligne, vous obtiendrez ce message d'erreur :

Automatisation et scriptageRe: Fonction Python et JSLUn bug. JMP 19 ?
J'obtiens un message d'erreur différent sur ma machine, mais il semble que run_jsl() agisse comme s'il s'agissait d'un eval(f = function({x},x)) plutôt que d'une simple affectation.

J'ai pu reproduire ce que je voyais avec Python, simplement en exécutant le programme depuis JSL.
Re: Fonction Python et JSLOui, @hogi utilise JMP 19.0.1. Il a envoyé un courriel au support pour savoir s'il s'agissait d'un bug connu.
Re: Fonction Python et JSLMême problème avec JMP19 et JMP19.0.1 (version Windows).
Avec JMP 18, il n'y a aucun problème.
C'est intéressant.
eval(f = fonction({x},x))
est différent de
f = fonction({x},x).
Donc, il évalue l'argument avant d'évaluer la valeur de retour de l'argument ?
Eval(print(1);Parse("print(2)"));
Différence significative :
- Avec le code Python, JMP plante sur mon système (peut-être y a-t-il une différence entre Win et Mac ?)
- avec eval(f = function({x},x)) JMP affiche une alerte JMP et continue de fonctionner :
