Interrompe la scrittura del codice Python nel registro JMPEsiste un modo per impedire a JMP di stampare nel registro una copia del codice inviato a Python?
Sembra che ogni volta che corro
Python Submit( code )
Ottengo una copia del codice nel registro.
Se eseguito solo una volta non è un grosso problema, ma se si esegue una piccola parte di Python molte volte ingombra il registro, rendendo più difficile trovare i messaggi reali. Ha anche un impatto sulle prestazioni a causa della scrittura sullo schermo?
Sto utilizzando JMP 18.0.1.
Esempio semplice:
Names Default To Here( 1 );
for(i = 1, i <= 10, i++,
Python Send( i );
Python Submit( "\[
b = i / 2
a = b ** 2]\" );
show( geta = Python Get( a ) );
);
Fornisce quanto segue:
/*:
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 0.25;
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 1;
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 2.25;
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 4;
//:*/
// ....... and so on
Automazione e scriptingRi: Interrompere la scrittura del codice Python nel registro JMPPotresti provare la funzione log capture().
a = "Goodbye";
b = log capture(
print("Hello World");
print(a);<BR />// Python commands here...
);
write(b);Ri: Interrompere la scrittura del codice Python nel registro JMPGrazie! Avevo dimenticato la cattura del registro().
Ri: Interrompere la scrittura del codice Python nel registro JMPL'indice dello script mostra il parametro facoltativo echo(True | False).
Python Invia(codice, echo(False));
Sfortunatamente, questo argomento facoltativo viene ignorato in 18.0 ( e 18.0.1 ), quindi l'acquisizione del log è la strada da percorrere a questo punto.
Il problema è stato risolto all'inizio di questo mese, ma non è stato inserito nel codice base per la prossima versione di manutenzione 18.1. Avevamo già superato la scadenza per il congelamento del codice per la versione 18.1. È stato corretto nel nostro percorso di sviluppo principale. (JMP19)
Allo stesso modo, anche il compagno di questo jmp.run_jsl() ha aggiunto l'argomento echo opzionale. (JMP19)
jmp.run_jsl( '''codice''', echo=True|False )
Ri: Interrompere la scrittura del codice Python nel registro JMP
@Paul_Nelson ha scritto:
L'indice dello script mostra il parametro facoltativo echo(True | False).
Python Invia(codice, echo(False));
Il parametro echo non appare nell'indice degli script per me, né in 18.0.1 né in 17.2:

È solo nella versione Pro?
Ri: Interrompere la scrittura del codice Python nel registro JMP
@Paul_Nelson ha scritto:
Sfortunatamente, questo argomento facoltativo viene ignorato in 18.0 ( e 18.0.1 ), quindi l'acquisizione del log è la strada da percorrere a questo punto.
Il problema è stato risolto all'inizio di questo mese, ma non è stato inserito nel codice base per la prossima versione di manutenzione 18.1. Avevamo già superato la scadenza per il congelamento del codice per la versione 18.1. È stato corretto nel nostro percorso di sviluppo principale. (JMP19)
Ciao @Paul_Nelson ,
Per JMP 19, il parametro echo offrirà una certa granularità su ciò che viene stampato nel registro? Ad esempio, potrebbe essere utile disabilitare la stampa del codice Python, ma consentire comunque la stampa dei messaggi da Python (dai comandi print() ad esempio o errori dalle librerie) nel log così come generato. Al momento, il metodo Log Capture() catturerà sempre tutto.
Grazie!
Ri: Interrompere la scrittura del codice Python nel registro JMPVolevo provarlo prima di rispondere.
Sì, con il codice corrente e i miei casi di test, l'output di Python print( value ) arriva comunque anche se il codice non viene visualizzato nel log, così come lo stack Traceback: quando si verifica un errore nel codice Python. Con un'eccezione di errore generata in Python, JSL restituisce -1. std::disclaimer< questo è uno sviluppo pre-rilascio, mentre credo che sia vicino alla forma finale, nessuna garanzia. >. L'idea di livelli di registrazione controllabili è un'idea interessante.
Ri: Interrompere la scrittura del codice Python nel registro JMPPotrebbe essere stato documentato nella documentazione della guida in linea o si è trattato di una svista involontaria. Potrebbe anche essere stato menzionato con Python Execute(). Se ti imbatti nella documentazione degli argomenti facoltativi echo(True | False) probabilmente vedrai anche un altro parametro facoltativo espandere ( True | False ). Ignoratelo, è stato rimosso nel 19.