Suite

Obtenir plusieurs paires de valeurs en tant que paramètre d'outil de script Python ?


J'ai essayé plusieurs types de données différents, mais je n'arrive pas à comprendre comment permettre à un utilisateur de créer une liste de paires élévation-température. Par exemple, une feuille de calcul pourrait ressembler à ceci :

Existe-t-il un type de données de paramètre qui permettrait à l'utilisateur de spécifier ces valeurs sous forme de paires ?


Boîte à outils Python :

Si votre script se trouve dans une boîte à outils Python, vous pouvez utiliser une table de valeurs (GPValueTable).

def getParameterInfo(self): param0 = arcpy.Parameter( displayName="Elevation and Temperature", name="in_features", datatype="GPValueTable", parameterType="Required", direction="Input") param0.columns = [[ 'Longue', 'Élévation'], ['Longue', 'Température']]

Boîte à outils régulière :

Si votre script se trouve dans une boîte à outils standard, vous pouvez utiliser un jeu d'enregistrements.

L'utilisation d'un jeu d'enregistrements dans une boîte à outils standard est un peu plus compliquée à configurer car vous devez créer une nouvelle table (vide) à utiliser comme schéma pour le paramètre Record Set. Ce que vous pouvez faire est de créer un nouveau fichier GDB avec votre script, de créer une table avec les champs Elévation et Température dans cette GDB, puis d'ajouter un paramètre Record Set à votre script et de définir la nouvelle table comme schéma de paramètre. Vous pouvez également créer cette table en mémoire dans la méthode de script ToolValidator.initializeParameters, mais je n'ai pas essayé.

Vous pouvez accéder à l'ensemble d'enregistrements à partir de votre script comme suit (en supposant qu'il s'agit du premier paramètre et que le schéma comporte des champs "Élévation" et "Température", sinon ajustez le code ci-dessous en conséquence):

import os, sys import json import arcpy elev_temp = json.loads(arcpy.GetParameter(0).JSON) pour rec dans elev_temp['features']: print rec['attributes']['Elevation'],rec['attributes ']['Température']

Comment passer plusieurs listes d'arguments à @click.option

Je souhaite appeler un script python via la ligne de commande avec ce type de paramètre (la liste peut être de n'importe quelle taille, par exemple avec 3) :

en utilisant le clic. D'après la documentation, il n'est indiqué nulle part que nous pouvons utiliser une liste comme paramètre de @click.option

Et quand j'essaye de faire ça :

dans mon test.py , en l'appelant depuis la ligne de commande :

Erreur : Vous avez un argument supplémentaire inattendu (certaines options 2])

Je ne peux pas vraiment utiliser d'arguments variadiques car seul 1 argument variadique par commande est autorisé (http://click.pocoo.org/5/arguments/#variadic-arguments)

Donc, si quelqu'un peut m'indiquer la bonne direction (en utilisant le clic de préférence), ce serait très apprécié.


Le interprètes module sera ajouté à la stdlib. Pour aider les auteurs de modules d'extension, une nouvelle page sera ajoutée à la documentation Extending Python. Vous trouverez plus d'informations sur les deux dans les sections qui suivent immédiatement.

Le interprètes Le module fournira une interface de haut niveau aux sous-interprètes et enveloppera un nouveau _interprètes (de la même manière que le enfilage module). Voir la section Exemples pour une utilisation concrète et des cas d'utilisation.

En plus d'exposer le support de sous-interprète existant (dans CPython), le module fournira également un mécanisme de partage de données entre les interprètes. Ce mécanisme est centré sur les « canaux », qui sont similaires aux files d'attente et aux tuyaux.

Notez que objets ne sont pas partagés entre les interprètes puisqu'ils sont liés à l'interprète dans lequel ils ont été créés. Au lieu de cela, les objets Les données est passé entre les interprètes. Voir la section Données partagées pour plus de détails sur le partage entre interprètes.

Au début, seuls les types suivants seront pris en charge pour le partage :

La prise en charge d'autres types de base (par exemple, bool, float, Ellipsis) sera ajoutée ultérieurement.


Objets de message¶

Une sous-classe de Message du module email.message. Les sous-classes de boîte aux lettres.Message ajoutent un état et un comportement spécifiques au format de boîte aux lettres.

Si un message est omis, la nouvelle instance est créée dans un état vide par défaut. Si un message est une instance email.message.Message, son contenu est en outre copié, toute information spécifique au format est convertie dans la mesure du possible si un message est une instance de Message. Si un message est une chaîne, une chaîne d'octets ou un fichier, il doit contenir un RFC 2822-message conforme, qui est lu et analysé. Les fichiers doivent être ouverts en mode binaire, mais les fichiers en mode texte sont acceptés pour la compatibilité descendante.

L'état et les comportements spécifiques au format offerts par les sous-classes varient, mais en général, seules les propriétés qui ne sont pas spécifiques à une boîte aux lettres particulière sont prises en charge (bien que vraisemblablement les propriétés soient spécifiques à un format de boîte aux lettres particulier). Par exemple, les décalages de fichiers pour les formats de boîtes aux lettres à fichier unique et les noms de fichiers pour les formats de boîtes aux lettres basés sur des répertoires ne sont pas conservés, car ils ne s'appliquent qu'à la boîte aux lettres d'origine. Mais l'état tel que si un message a été lu par l'utilisateur ou marqué comme important est conservé, car il s'applique au message lui-même.

Il n'est pas obligatoire d'utiliser des instances de Message pour représenter les messages récupérés à l'aide d'instances de boîte aux lettres. Dans certaines situations, le temps et la mémoire requis pour générer des représentations de message peuvent ne pas être acceptables. Pour de telles situations, les instances de boîte aux lettres offrent également des représentations de type chaîne et fichier, et une fabrique de messages personnalisée peut être spécifiée lorsqu'une instance de boîte aux lettres est initialisée.

MaildirMessage ¶

Un message avec des comportements spécifiques à Maildir. Paramètre un message a la même signification qu'avec le constructeur Message.


Détails du projet

Liens du projet

Statistiques

Affichez les statistiques de ce projet via Libraries.io, ou en utilisant notre ensemble de données public sur Google BigQuery

Licence: Licence de logiciel Apache (Licence Apache, Version 2.0)

Tags Snowflake, db, base de données, cloud, analytique, entrepôt

A besoin: Python >=3.6

Mainteneurs

Classificateurs

  • Statut de développement
    • 5 - Production/Écurie
    • Console
    • Autre environnement
    • Développeurs
    • Éducation
    • Informatique
    • Administrateurs système
    • Approuvé OSI :: Licence de logiciel Apache
    • OS indépendant
    • Python :: 3.6
    • Python :: 3.7
    • Python :: 3.8
    • SQL
    • Base de données
    • Scientifique/Ingénierie :: Analyse de l'information
    • Développement de logiciels
    • Développement de logiciels :: Bibliothèques
    • Développement de logiciels :: Bibliothèques :: Frameworks d'applications
    • Développement de logiciels :: Bibliothèques :: Modules Python

    Obtenir plusieurs paires de valeurs en tant que paramètre d'outil de script Python ? - Systèmes d'information géographique

    Scripts Python et PowerShell pour l'API REST Dell EMC PowerEdge iDRAC avec DMTF Redfish

    Exemples de scripts écrits en Python et PowerShell qui illustrent l'utilisation de l'API REST Dell Remote Access Controller (iDRAC) intégrée avec Redfish pour gérer les serveurs Dell EMC PowerEdge.

    Il existe plusieurs normes de gestion de systèmes hors bande (OOB) disponibles dans l'industrie aujourd'hui. Cependant, il n'existe pas de norme unique qui puisse être facilement utilisée dans les normes de programmation émergentes, qui puisse être facilement mise en œuvre dans des systèmes embarqués et qui puisse répondre aux exigences des modèles de solutions informatiques en évolution d'aujourd'hui. Les nouveaux modèles de solutions informatiques ont imposé de nouvelles exigences aux solutions de gestion des systèmes pour prendre en charge une échelle étendue, une sécurité accrue et une ouverture multifournisseur, tout en s'alignant sur les outils et processus DevOps modernes. Reconnaissant ces besoins, Dell EMC et d'autres leaders des solutions informatiques au sein du groupe de travail sur la gestion distribuée (DMTF) ont entrepris la création d'une nouvelle norme d'interface de gestion. Après un effort de plusieurs années, la nouvelle norme, Redfish v1.0, a été annoncée en juillet 2015.

    Les principaux avantages de Redfish comprennent :

    • Simplicité et convivialité accrues
    • Connexions cryptées et sécurité généralement renforcée
    • Une interface de programmation facilement contrôlable via des scripts
    • Basé sur des normes largement utilisées pour les API Web et les formats de données

    Redfish a été conçu pour prendre en charge la gamme complète d'architectures de serveurs, des serveurs monolithiques à l'infrastructure convergée et à l'architecture à grande échelle. Le modèle de données Redfish, qui définit la structure et le format des données représentant l'état du serveur, l'inventaire et les fonctions opérationnelles disponibles, est indépendant du fournisseur. Les administrateurs peuvent ensuite créer des scripts d'automatisation de gestion qui peuvent gérer n'importe quel serveur compatible Redfish. Ceci est crucial pour le fonctionnement efficace d'un parc de serveurs hétérogone.

    L'utilisation de Redfish présente également d'importants avantages en matière de sécurité : contrairement aux protocoles de gestion existants, Redfish utilise le cryptage HTTPS pour une communication sécurisée et fiable. Tout le trafic réseau Redfish, y compris les notifications d'événements, peut être envoyé crypté sur le réseau.

    Redfish fournit une méthode hautement organisée et facilement accessible pour interagir avec un serveur à l'aide d'outils de script. L'interface Web utilisée par Redfish est prise en charge par de nombreux langages de programmation et sa structure arborescente facilite la localisation des informations. Les données renvoyées par une requête Redfish peuvent être transformées en un dictionnaire interrogeable composé de paires clé-valeur. En regardant les valeurs dans le dictionnaire, il est facile de localiser les paramètres et l'état actuel d'un système géré Redfish. Ces paramètres peuvent ensuite être mis à jour et des actions émises vers un ou plusieurs systèmes.

    Présentation de l'iDRAC avec Lifecycle Controller

    Le contrôleur d'accès à distance intégré Dell (iDRAC) est conçu pour améliorer la productivité des administrateurs de serveurs et améliorer la disponibilité globale des serveurs PowerEdge. iDRAC alerte les administrateurs des problèmes de serveur, permettant la gestion de serveur à distance et réduisant la nécessité pour un administrateur de visiter physiquement le serveur. iDRAC avec Lifecycle Controller permet aux administrateurs de déployer, mettre à jour, surveiller et gérer les serveurs Dell à partir de n'importe quel emplacement sans utiliser d'agents dans une méthode un-à-un ou un-à-plusieurs. Cette gestion hors bande permet de gérer les modifications de configuration et les mises à jour du micrologiciel à partir de Dell EMC, des consoles tierces appropriées et des scripts personnalisés directement vers iDRAC avec Lifecycle Controller à l'aide des API standard prises en charge. Pour prendre en charge la norme Redfish, l'iDRAC avec Lifecycle Controller inclut la prise en charge de l'API REST iDRAC en plus de la prise en charge des API standard IPMI, SNMP et WS-Man. L'API REST iDRAC s'appuie sur la norme Redfish pour fournir une interface RESTful pour les opérations à valeur ajoutée Dell EMC, notamment :

    • Informations sur tous les services hors bande iDRAC avec Lifecycle Controller : serveur Web, SNMP, support virtuel, SSH, Telnet, IPMI et KVM
    • Rapports de sous-système de stockage étendus couvrant les contrôleurs, les boîtiers et les disques
    • Pour le serveur modulaire PowerEdge FX2, des informations détaillées sur le châssis couvrant les alimentations, les températures et les ventilateurs
    • Avec l'iDRAC Service Module (iSM) installé sous le système d'exploitation du serveur, l'API fournit un inventaire détaillé et des rapports d'état pour les interfaces réseau hôte, y compris des détails tels que l'adresse IP, le masque de sous-réseau et la passerelle pour le système d'exploitation hôte.

    En savoir plus sur l'iDRAC et le sébaste

    Pour obtenir des informations complètes sur iDRAC avec Lifecycle Controller, consultez les documents à l'adresse http://www.dell.com/idracmanuals .

    Pour une présentation de la mise en œuvre de Redfish pour iDRAC avec Lifecycle Controller, consultez ces livres blancs Dell EMC :

    Pour plus de détails sur la norme DMTF Redfish, visitez https://www.dmtf.org/standards/redfish

    API REST iDRAC avec bibliothèque de scripts Redfish

    Cette bibliothèque GitHub contient des exemples de scripts Python et PowerShell qui illustrent l'utilisation de l'API REST iDRAC avec Redfish pour effectuer les actions suivantes :

    • Obtenir/Définir les attributs du BIOS
    • Obtenir / Définir l'ordre de démarrage du BIOS, état de la source de démarrage
    • Définir le prochain périphérique de démarrage unique
    • Réglez le BIOS sur les paramètres par défaut
    • Modifier un mot de passe utilisateur iDRAC
    • Définir iDRAC sur les paramètres par défaut
    • Obtenir les journaux du contrôleur de cycle de vie iDRAC
    • Obtenir/définir l'iDRAC, le contrôleur de cycle de vie et les attributs système
    • Exporter/importer un profil de configuration de serveur (SCP)
    • Aperçu de l'importation SCP
    • Obtenir/Définir l'état d'alimentation du serveur
    • Obtenir l'inventaire de stockage du serveur
    • Serveurs PowerEdge 12G/13G/14G
    • Micrologiciel iDRAC 7/8 minimum 2.40.40.40, micrologiciel iDRAC9 3.00.00.00
    • Python 2.x ou version ultérieure
    • PowerShell 5.0 ou version ultérieure

    Veuillez noter que ce code est fourni tel quel et n'est actuellement pas pris en charge par Dell EMC.

    Signaler des problèmes ou fournir des commentaires

    Si vous rencontrez des problèmes ou souhaitez faire part de vos commentaires, veuillez ouvrir un problème ici https://github.com/dell/idrac-Redfish-Scripting/issues


    Vous pouvez configurer des notifications de modification et appeler des actions automatisées pour les paramètres et les stratégies de paramètres. Pour plus d'informations, consultez Configuration des notifications ou des actions de déclenchement en fonction des événements du Parameter Store.

    Organiser et contrôler les accès

    Vous pouvez baliser vos paramètres individuellement pour vous aider à identifier un ou plusieurs paramètres en fonction des balises que vous leur avez attribuées. Par exemple, vous pouvez baliser des paramètres pour des environnements, des services, des utilisateurs, des groupes ou des périodes spécifiques. Vous pouvez également restreindre l'accès aux paramètres en créant une stratégie AWS Identity and Access Management (IAM) qui spécifie les balises auxquelles un utilisateur ou un groupe peut accéder. Pour plus d'informations, voir Balisage des paramètres Systems Manager.

    Vous pouvez associer un alias pour les versions de votre paramètre en créant des libellés. Les étiquettes peuvent vous aider à vous souvenir de l'objectif d'une version de paramètre lorsqu'il existe plusieurs versions.

    Vous pouvez créer des paramètres qui pointent vers une instance Amazon Elastic Compute Cloud (Amazon EC2) et Parameter Store valide ces paramètres pour s'assurer qu'il fait référence au type de ressource attendu, que la ressource existe et que le client a l'autorisation d'utiliser la ressource. Par exemple, vous pouvez créer un paramètre avec l'ID Amazon Machine Image (AMI) comme valeur avec le type de données aws:ec2:image, et Parameter Store effectue une opération de validation asynchrone pour s'assurer que la valeur du paramètre répond aux exigences de formatage d'une AMI ID et que l'AMI spécifiée est disponible dans votre compte AWS.

    Parameter Store est intégré à AWS Secrets Manager afin que vous puissiez récupérer les secrets Secrets Manager lors de l'utilisation d'autres services AWS qui prennent déjà en charge les références aux paramètres Parameter Store.

    Accessible depuis d'autres services AWS

    Vous pouvez utiliser les paramètres de Parameter Store avec d'autres fonctionnalités de Systems Manager et des services AWS pour récupérer des secrets et des données de configuration à partir d'un magasin central. Les paramètres fonctionnent avec les capacités de Systems Manager telles que Run Command, Automation et State Manager, capacités d'AWS Systems Manager. Vous pouvez également référencer des paramètres dans un certain nombre d'autres services AWS, notamment :


    Comment ajouter un élément à une clé dans un dictionnaire avec Python ?

    Nous pouvons utiliser la fonction intégrée append() pour ajouter des éléments aux clés du dictionnaire. Pour ajouter un élément en utilisant append() au dictionnaire, nous devons d'abord trouver la clé à laquelle nous devons ajouter.

    Considérez que vous avez un dictionnaire comme suit :

    Les clés du dictionnaire sont Nom, Adresse et Âge. En utilisant la méthode append(), nous pouvons mettre à jour les valeurs des clés dans le dictionnaire.

    Lorsque nous imprimons le dictionnaire après avoir mis à jour les valeurs, la sortie est la suivante :


    Options de gamme¶

    Une mention spéciale doit aller au type IntRange, qui fonctionne de manière très similaire au type INT, mais limite la valeur à une plage spécifique (incluse sur les deux bords). Il a deux modes :

    le mode par défaut (mode sans serrage) où une valeur qui tombe en dehors de la plage provoquera une erreur.

    un mode de blocage facultatif où une valeur qui tombe en dehors de la plage sera bloquée. Cela signifie qu'une plage de 0 à 5 renverrait 5 pour la valeur 10 ou 0 pour la valeur -1 (par exemple).

    Et depuis la ligne de commande :

    Si vous passez Aucun pour l'un des bords, cela signifie que la plage est ouverte de ce côté.