5.7. Anaconda アドオン構造
Anaconda アドオンとは、init.py ファイルとその他のソースディレクトリー (サブパッケージ) を含むディレクトリーを持つ Python パッケージのことです。Python を使用すれば、各パッケージ名を一度だけインポートし、パッケージの最上位ディレクトリーに一意の名前を指定できます。
アドオンは名前に関係なく読み込まれるため、任意の名前を使用できます。唯一の条件は、それらを特定のディレクトリーに配置することです。
そのため、推奨のアドオン命名規則は Java パッケージまたは D-Bus サービス名に似ています。
ディレクトリー名を Python パッケージの一意の識別子にするには、ドットの代わりにアンダースコア (_) を使用して、アドオン名の前に組織の逆引きドメイン名を付けます。例: com_example_hello_world
各ディレクトリーに必ず init.py ファイルを作成してください。このファイルがないディレクトリーは、無効な Python パッケージとみなされます。
アドオンを作成する場合は、以下を確認してください。
-
各インターフェイス (グラフィカルインターフェイスおよびテキストインターフェイス) のサポートは個別のサブパッケージで利用可能です。このサブパッケージには、グラフィカルインターフェイスには
gui、テキストベースのインターフェイスにはtuiという名前が付けられています。 -
guiおよびtuiパッケージには、spokesサブパッケージが含まれています。 [1] - パッケージに含まれるモジュールには任意の名前があります。
-
gui/およびtui/ディレクトリーには、任意の名前の Python モジュールを含めることができます。 - アドオンの実際の作業を実行するサービスがあります。このサービスは、Python またはその他の言語で記述できます。
- サービスは、D-Bus およびキックスタートのサポートを実装します。
- アドオンには、サービスの自動起動を有効にするファイルが含まれます。
以下は、全インターフェイス (Kickstart、GUI、および TUI) をサポートするアドオンのディレクトリー構造の例です。
com_example_hello_world
├─ gui
│ ├─ init.py
│ └─ spokes
│ └─ init.py
└─ tui
├─ init.py
└─ spokes
└─ init.py
各パッケージには、API で定義される 1 つ以上のクラスから継承されるクラスを定義する任意の名前を持つモジュールが少なくとも 1 つ含まれる必要があります。
すべてのアドオンにおいて、ドキュメント文字列の表記規則については、Python の PEP 8 および PEP 257 の ガイドラインに従ってください。Anaconda のドキュメント文字列の実際の内容のフォーマットについては、合意が得られていません。唯一の条件は、人間が読める形式であることだけです。アドオンに自動生成ドキュメントを使用する予定がある場合は、ドキュメント文字列は、それを実現するために使用するツールキットのガイドラインに従ってください。
アドオンが新しいカテゴリーを定義する必要がある場合は、カテゴリーサブパッケージを追加できますが、これは推奨していません。