Fonctions Python d'Alteryx
Important
Les fonctions ci-dessous sont disponibles dans le package Alteryx lorsque vous exécutez from ayx import Alteryx. Les fonctions vous permettent de transmettre des données entre Alteryx et Jupyter.
Lire des données
Alteryx.read("<input connection name>") : renvoie les données d'entrée sous la forme d'une trame de données pandas. Les ancrages d'entrée sont basés sur 1 : « #1 », « #2 », etc.
Exemples
df = Alteryx.read("#1") renvoie SUCCÈS : lecture des données d'entrée « #1 ».
Lire les métadonnées
Alteryx.readMetadata("<input connection name>" or <pandas dataframe>) : renvoie les métadonnées du champ d'entrée sous forme de dict. Les ancrages d'entrée sont basés sur 1 : « #1 », « #2 », etc.
Exemples
md = Alteryx.readMetadata("#1"); print(md);renvoie {'Field1': {'type': 'Byte', 'length': 1, 'source': 'TextInput:', 'description': ''}}.md = Alteryx.readMetadata(df); print(md);renvoie {'Field1': {'type': 'Byte', 'length': 1, 'source': '', 'description': ''}}.
Écrire des données
Alteryx.write(<pandas dataframe>, <output anchor number>, [metadata list or dict]) : transmet la trame de données complète à Alteryx lorsque le workflow est exécuté. Vous pouvez également transmettre des métadonnées, soit sous forme de liste (en utilisant l'ordre des colonnes), soit sous forme de dict (en utilisant les noms des colonnes). Les ancrages de sortie sont basés sur 1 : « #1 », « #2 », etc.
Utilisez Alteryx.write pour extraire les données de l'outil Python. Pour envoyer des données à d'autres outils du canevas, utilisez une méthode comme ceci :
# Replace "PANDAS_DF" with your data, in DataFrame form. # Replace "OUTPUT_ANCHOR_NUM" with the number of your output anchor. Alteryx.write(PANDAS_DATAFRAME, OUTPUT_ANCHOR_NUM)
La méthode Alteryx.write accepte uniquement les trame de données pandas. Si vous avez des données dans un autre format, utilisez la bibliothèque Pandas pour les convertir en trame de données. La bibliothèque Pandas est déjà installée avec Designer. Accédez-y via importer pandas.
Vous pouvez envoyer jusqu'à cinq trames de données vers les ancrages de sortie.
Exemples
Alteryx.write(df, 1)Renvoie SUCCESS : écriture des données de connexion sortante 1.Alteryx.write(df, 2, Alteryx.readMetadata("#1"))renvoie SUCCESS : écriture des données de connexion sortante 2.Alteryx.write(df, 3, {'Field1': {'name': 'Field1_as_double', 'type': 'Double'}})Renvoie SUCCESS : écriture des données de connexion sortante 3.Alteryx.write(df, 4, [{'name': 'Field1_as_string', 'type': 'V_String', 'length': 8}])Renvoie SUCCESS : écriture des données de connexion sortante 4.
Répertorier les connexions entrantes
Alteryx.getIncomingConnectionNames( ) : renvoie une liste contenant toutes les connexions aux données entrantes. Si les connexions semblent non synchronisées, réexécutez le workflow Alteryx.
Exemples
Alteryx.getIncomingConnectionNames() renvoie ["#1", "#2", "model"].
Installer des packages
Alteryx.installPackages("<package name or list of package names>") : installe les packages à partir de PyPi. Une connexion Internet est obligatoire. En outre, si vous utilisez une installation administrateur de Alteryx, Alteryx doit être ouvert en mode administrateur pour installer les packages. Les installations non-administrateur n'ont pas cette restriction.
Exemples
Alteryx.installPackages("tensorflow")Alteryx.installPackages(["keras","theano","gensim"])
Constantes de workflow
Obtenir la constante de workflow
Alteryx.getWorkflowConstant("<constant name>") : renvoie la valeur d'une constante de workflow Alteryx (vous pouvez y accéder dans l'onglet Workflow de la configuration du workflow dans Designer).
Important
Évitez d'utiliser des wrappers % dans les constantes du workflow. Utilisez plutôt ceci, par exemple, pour appeler Engine.WorkflowDirectory :
from ayx import Alteryx
Alteryx.getWorkflowConstant("Engine.WorkflowDirectory")Exemples
Alteryx.getWorkflowConstant("Engine.TempFilePath") renvoie 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\'.
Obtenir toutes les constantes
Alteryx.getWorkflowConstants( ) : renvoie la valeur de toutes les constantes de workflow Alteryx dans un dict.
Exemples
Alteryx.getWorkflowConstants() renvoie :
{
'Engine.GuiInteraction': '1',
'Engine.IterationNumber': 0,
'Engine.ModuleDirectory': 'C:\my_workflows\',
'Engine.TempFilePath': 'C:\Users\myuser\AppData\Local\Temp\Engine_17376_1afec4920f674e3a8c29be6225048da8_\',
'Engine.Version': '2018.3.0.9999',
'Engine.WorkflowDirectory': 'C:\my_workflows\',
'Engine.WorkflowFileName': 'my_workflow.yxmd'
}Importer des modules Python
Alteryx.importPythonModule("<path>", [list of submodules]) : renvoie un objet module qui représente le fichier ou le répertoire Python spécifié. Par défaut, si un répertoire est fourni, tous les sous-modules sont importés, mais vous pouvez spécifier une liste de sous-modules avec l'argument facultatif submodules.
Exemples
myscript = Alteryx.importPythonModule("C:\\documents\\my_script.py")myscript.square(3)renvoie 9.mypkg = Alteryx.importPythonModule("C:\\documents\\my_package")mypkg.module1.half( mypkg.subpkg.max_value )renvoie 4
Les extraits de code ci-dessus sont basés sur les fichiers et dossiers suivants :
C:\documents C:\documents\my_script.py ^^^ (contains a function square() that returns the input value squared) C:\documents\my_package C:\documents\my_package\__init__.py C:\documents\my_package\module1.py ^^^ (contains a function half() that returns half of the input value) C:\documents\my_package\subpkg C:\documents\my_package\subpkg\__init__.py ^^^ (contains a variable max_value = 8)
