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