5.7. Anaconda アドオン構造


Anaconda アドオンは、__init__.py とその他のソースディレクトリー (サブパッケージ) のディレクトリーが含まれる Python パッケージです。Python では各パッケージ名を一度だけインポートできるため、パッケージの最上層のディレクトリーに一意の名前を指定します。アドオンは名前に関係なく読み込まれるため、任意の名前を使用できます。唯一の要件は、特定のディレクトリーに配置する必要があることです。

そのため、推奨のアドオン命名規則は Java パッケージまたは D-Bus サービス名に似ています。

ディレクトリー名を Python パッケージの一意の名前にするには、アドオン名を、ドットではなくアンダースコア (_) を使用して組織の逆引きドメイン名に接頭辞を指定します。例: com_example_hello_world

重要

各ディレクトリーに __init__.py ファイルを作成してください。このファイルがないディレクトリーは、無効な Python パッケージとみなされます。

アドオンを作成する場合は、以下を確認してください。

  • 各インターフェイス (グラフィカルインターフェイスおよびテキストインターフェイス) のサポートは個別のサブパッケージで利用可能です。このサブパッケージには、グラフィカルインターフェイスには gui、テキストベースのインターフェイスには tui という名前が付けられています。
  • gui パッケージおよび tui パッケージには、spoke サブパッケージが含まれています。[1]
  • パッケージに含まれるモジュールには任意の名前があります。
  • gui/ および tui/ ディレクトリーには、任意の名前の Python モジュールを含めることができます。
  • アドオンの実際の作業を実行するサービスがあります。このサービスは、Python またはその他の言語で記述できます。
  • サービスは、D-Bus およびキックスタートのサポートを実装します。
  • アドオンには、サービスの自動起動を有効にするファイルが含まれます。

以下は、全インターフェイス (Kickstart、GUI、および TUI) をサポートするアドオンのディレクトリー構造の例です。

例5.1 アドオン構造の例

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

各パッケージには、API で定義される 1 つ以上のクラスから継承されるクラスを定義する任意の名前を持つモジュールが少なくとも 1 つ含まれる必要があります。

注記

すべてのアドオンについては、docstring 規則の Python PEP 8 および PEP 257 のガイドラインに従ってください。Anaconda の docstring の実際のコンテンツの形式には合意はありません。唯一の要件は、人間が判読できることです。アドオンに自動生成されるドキュメントを使用する予定の場合には、docstrings はこれを行うために使用するツールキットのガイドラインに従う必要があります。

アドオンが新しいカテゴリーを定義する必要がある場合は、カテゴリーサブパッケージを追加できますが、これは推奨していません。



[1] アドオンが新しい カテゴリー を定義する必要がある場合に、gui パッケージにカテゴリーサブパッケージが含まれる場合もありますが、これは推奨されません。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.