5.7. Structure de l'extension Anaconda


Un add-on Anaconda est un paquetage Python qui contient un répertoire avec __init__.py et d'autres répertoires sources (sous-paquetages). Comme Python ne permet d'importer qu'une seule fois le nom de chaque paquetage, il convient de spécifier un nom unique pour le répertoire de premier niveau du paquetage. Vous pouvez utiliser un nom arbitraire, car les modules complémentaires sont chargés quel que soit leur nom - la seule exigence est qu'ils doivent être placés dans un répertoire spécifique.

La convention de dénomination suggérée pour les modules complémentaires est similaire aux paquets Java ou aux noms de services D-Bus.

Pour que le nom du répertoire soit un identifiant unique pour un paquetage Python, préfixez le nom du module d'extension par le nom de domaine inversé de votre organisation, en utilisant des traits de soulignement (_) au lieu de points. Par exemple, com_example_hello_world.

Important

Veillez à créer un fichier __init__.py dans chaque répertoire. Les répertoires ne contenant pas ce fichier sont considérés comme des paquets Python non valides.

Lors de la rédaction d'un add-on, veillez aux points suivants :

  • La prise en charge de chaque interface (interface graphique et interface textuelle) est disponible dans un sous-paquet distinct, nommé gui pour l'interface graphique et tui pour l'interface textuelle.
  • Les paquets gui et tui contiennent un sous-paquet spokes. [1]
  • Les modules contenus dans les paquets ont un nom arbitraire.
  • Les répertoires gui/ et tui/ contiennent des modules Python de n'importe quel nom.
  • Il existe un service qui effectue le travail réel de l'addon. Ce service peut être écrit en Python ou dans tout autre langage.
  • Le service prend en charge D-Bus et Kickstart.
  • L'addon contient des fichiers qui permettent le démarrage automatique du service.

Voici un exemple de structure de répertoire pour un module complémentaire qui prend en charge toutes les interfaces (Kickstart, GUI et TUI) :

Exemple 5.1. Exemple de structure de l'extension

com_example_hello_world
├─ gui
│  ├─ init.py
│  └─ spokes
│     └─ init.py
└─ tui
   ├─ init.py
   └─ spokes
   └─ init.py

Chaque paquetage doit contenir au moins un module avec un nom arbitraire définissant les classes héritées d'une ou plusieurs classes définies dans l'API.

Note

Pour tous les modules complémentaires, suivez les directives PEP 8 et PEP 257 de Python pour les conventions des chaînes de documentation. Il n'y a pas de consensus sur le format du contenu réel des chaînes de documentation en Anaconda; la seule exigence est qu'elles soient lisibles par l'homme. Si vous prévoyez d'utiliser une documentation générée automatiquement pour votre module complémentaire, les chaînes de documentation doivent suivre les directives de la boîte à outils que vous utilisez pour ce faire.

Vous pouvez inclure un sous-paquetage de catégorie si un module complémentaire doit définir une nouvelle catégorie, mais cela n'est pas recommandé.



[1] Le paquet gui peut également contenir un sous-paquet categories si le module complémentaire doit définir une nouvelle catégorie, mais cela n'est pas recommandé.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.