Función de Python y JSLDesde Python en JMP: mejores prácticas para convertir columnas de dataframe a datatable e implicaciones en la velocidad de cálculo. Acabo de descubrir esta nueva y práctica función:
import jmp
jmp.globals['pi'] = 3.1415927
jmp.globals['bB'] = 'Bumble Bee'
print( jmp.globals.items() )
para definir variables en el espacio de nombres JSL, como una versión push de Get() de Python
Existen algunas restricciones. Por ejemplo, actualmente jmp.globals no reconoce las funciones 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 respuesta:

¿Quizás un problema relacionado?
El intento de crear una función mediante run_jsl con este código JSL:
import jmp
jmp.run_jsl('x="hello";Caption(x)') # OK
jmp.run_jsl('f= function({x},x)') # crash
... ¡¿provoca un accidente?!
Al ejecutar el código línea por línea, obtendrá este mensaje de error:

Automatización y scriptingRe: Función de Python y JSLUn error. ¿SALTO 19?
En mi máquina recibo un mensaje de error diferente, pero parece que run_jsl() está actuando como si se estuviera produciendo un eval(f = function({x},x)) en lugar de simplemente la asignación.

Pude recrear lo que veía desde Python, simplemente ejecutándolo desde JSL.
Re: Función de Python y JSLSí, @hogi está usando JMP 19.0.1. Envió un correo electrónico al soporte preguntando si se trataba de un error conocido.
Re: Función de Python y JSLEl mismo problema ocurre con JMP19 y JMP19.0.1 (versión para Windows).
Con JMP 18, no hay ningún problema.
Es interesante que
evaluar(f = función({x},x))
es diferente de
f = función({x},x).
Entonces, ¿evalúa el argumento antes de evaluar el valor de retorno del argumento?
Eval(print(1);Parse("print(2)"));
Significativamente diferente:
- Con el código Python, JMP se bloquea en mi sistema (¿quizás haya alguna diferencia entre Windows y Mac?).
- Con eval(f = function({x},x)), JMP muestra una alerta y continúa funcionando:
