5.5. Anaconda アドオンの構造


Anaconda アドオンは Python パッケージで、これには __init__.py と他のソースディレクトリー (サブパッケージ) を格納しているディレクトリーが含まれています。Python は各パッケージ名のインポートを 1 回しか許可しないので、パッケージのトップレベルのディレクトリー名は一意のものである必要があります。同時に、アドオンは名前に関係なく読み込まれるため、任意の名前を指定できます。必須要件は、特定のディレクトリーに配置する必要があることです。
このため、アドオンで推奨される命名規則は、Java パッケージや D-Bus サービス名と同様のものになります。ドットの代わりにアンダースコア (_) で組織に予約されているドメイン名を持つアドオン名に接頭辞を付けます。これにより、ディレクトリー名が Python パッケージの有効な識別子となります。つまり、アドオン名の前に自分の組織のリバースドメイン名を追加します (com_example_hello_world)。この規則は、Python パッケージおよびモジュール名の recommended naming scheme (推奨命名スキーム) に準拠しています。
重要
各ディレクトリー内に __init__.py ファイルを作成することを忘れないでください。このファイルがないディレクトリーは、有効な Python パッケージとはみなされません。
アドオンの作成時には、インストーラーでサポートされる機能は Kickstart でもサポートされる必要があることに注意してください。各インターフェイス (Kickstart、グラフィカルインターフェイス、グラフィカルインターフェイス、テキストインターフェイス) のサポートは個別のサブパッケージで指定する必要があります。このサブパッケージには、キックスタートの場合は ks、グラフィカルインターフェイスには gui、テキストベースのインターフェイスには tui という名前を指定する必要があります。guitui パッケージには、spokes サブパッケージが含まれる必要があります。[3]
これらのパッケージ内のモジュール名は任意のものにすることができます。ks/gui/ および tui/ のディレクトリー内の Python モジュール名はどんなものでも構いません。
すべてのインターフェイス (Kickstart、GUI および TUI) をサポートするアドオンのディレクトリー構造のサンプルは以下のようになります。

例2 アドオン構造の例

com_example_hello_world
├─ ks
│  └─ __init__.py
├─ gui
│  ├─ __init__.py
│  └─ spokes
│     └─ __init__.py
└─ tui
   ├─ __init__.py
   └─ spokes
   └─ __init__.py
各パッケージには、API で定義される 1 つ以上のクラスから継承されるクラスを定義する任意の名前を持つモジュールが少なくとも 1 つ含まれる必要があります。これについては、「Anaconda アドオンの作成」 .
すべてのアドオンにおける docstring 規則は、Python の PEP 8 および PEP 257 ガイドに従ってください。Anaconda の docstring の実際のコンテンツの形式には合意はありません。唯一の要件は、人間が判読できることです。唯一の要件は、ヒューマンリーダブルであることです。アドオンで自動生成ドキュメントを使用する場合は、これに使用するツールキットのガイドラインに docstring が準拠するようにしてください。


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

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.