Tutoriel pour développeurs : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18Cette vidéo comprend des questions et réponses des participants qui ont assisté au webinaire en direct le 21 mars 2024. à 25 h 36, 50 min 39 s et 01 h 00 min 21 s. Un résumé de certaines des questions et réponses est fourni ci-dessous. Pour une réponse complète, pensez à consulter les questions et réponses dans la vidéo.
Automatisation et scriptsRe : Tutoriel du développeur : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18Je souhaite clarifier la réponse à la question :
Q : Cela signifie-t-il que JMP ne peut pas utiliser d'autres versions de Python ?
JMP 18 utilisera uniquement le Python 3.11 intégré installé. Les paramètres Python Init() et Python Connect() permettant de sélectionner une installation Python sont tous obsolètes et les paramètres ignorés.
Python de JMP 18 est un environnement isolé, il n'entrera donc pas ( ne devrait pas) entrer en conflit avec d'autres installations Python sur votre système. Rien ne vous empêche d’utiliser votre pipeline Python existant. Vous pouvez utiliser Python de JMP pour obtenir des données vers et depuis JMP afin de les transmettre à votre pipeline existant.
Re : Tutoriel du développeur : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18
@gail_massari a écrit :
Q : Si je souhaite accéder à une table de données JMP à partir du notebook Jupyter dans un autre environnement Python, l'instruction « importer « JMP » fonctionnerait-elle toujours ?
R : Non.
Qu'en est-il du "même environnement Python" : est-il possible de lier des IDE Python comme Spyder ou Visual Studio Code Editors à l'installation de JMP Python ?
Avoir toutes les fonctionnalités de programmation Python des IDE + la possibilité de
import 'JMP'
Re : Tutoriel du développeur : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18L'instruction import jmp ne fonctionnera qu'à partir de JMP lui-même.
Il n'est pas implémenté en tant que bibliothèque partagée ou script Python, le pont entre Python et la fonctionnalité JMP est un code C++ interne à l'exécutable JMP lui-même.
Re : Tutoriel du développeur : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18Lors de l'envoi de tables avec des images à Python, est-il possible d'accéder aux images depuis Python ?
Re : Tutoriel du développeur : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18# getColImage.py
#
# Description:
# Get a picture from an image column using Python
# JMP 18 only supports numeric and character column types for transfer
# but the value can be grabbed via JSL, and passed to Python as a string
# in the meantime. The Python code will need to trim off the
# New Image( Char To Blob()) and decode the image back to binary.
import jmp
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class Families.jmp')
jmp.run_jsl('''
Names Default to Here(1);
dt = Current Data Table();
img = dt:picture[1]; // get the picture
img_str = char(img); // make it a string
Python Send(img_str); // send Python the string
''')
# print the object's JSL representation
# which is text encoding of the binary, a description of the
# encoding and image format type.
print(img_str)
Avec sortie :
Nouvelle image (Char To Blob ( "1iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAAABxLuK ...
VORK5CYII=", "base64compressed" ), "png")
Du côté Python, vous devez analyser la chaîne Blob, la méthode de compression et le format, décoder l'image du texte en binaire.
Cependant, une autre méthode, probablement meilleure, consiste à utiliser << Get Pixels("rgba"); sur la colonne pour obtenir une liste de 4 éléments de matrices prise en charge via Python Send().
getColImage.py mis à jour
# getColImage.py
#
# Description:
# Get a picture from an image column using Python
# JMP 18 only supports numeric and character column types for transfer
# but the value can be grabbed via JSL, and passed to Python as a string
# in the meantime. The Python code will need to trim off the
# New Image( Char To Blob()) and decode the image back to binary.
#
# Alternatively use << Get Pixels("rgba"); to get a list of matricies
# which is passable from JSL to Python using Python Send();
#
import jmp
dt = jmp.open(jmp.SAMPLE_DATA + 'Big Class Families.jmp')
jmp.run_jsl('''
Names Default to Here(1);
dt = Current Data Table();
img = dt:picture[1]; // get the picture
img_str = char(img); // make it a string
Python Send(img_str); // send Python the string
asRGBA = { r, g, b, a} = dt:picture[1] << Get Pixels("rgba");
Python Send(asRGBA);
''')
# print the object's JSL representation
# which is text encoding of the binary, a description of the
# encoding and image format type.
print(img_str)
print(asRGBA)
Re : Tutoriel du développeur : nouvelles fonctionnalités d'intégration et de script Python dans JMP 18Quelque part, les premières lignes du message ont été coupées.
Non, ce n'est pas directement possible en utilisant l'intégration Python dans JMP 18, mais une solution de contournement est possible en utilisant JSL.
L'accent mis sur JMP 18 était les colonnes de caractères et numériques. La prise en charge complète de la table de données est en cours de développement.