5.7. Anaconda 애드온 구조
Anaconda 애드온은 __init___.py
및 기타 소스 디렉터리(subpackages)가 있는 디렉토리를 포함하는 Python 패키지입니다. Python에서는 각 패키지 이름을 한 번만 가져올 수 있으므로 패키지 최상위 디렉터리에 대한 고유 이름을 지정합니다. add-ons는 이름에 관계없이 로드되므로 임의의 이름을 사용할 수 있습니다. 즉, 유일한 요구 사항은 특정 디렉터리에 배치되어야 한다는 것입니다.
애드온에 대한 제안된 이름 지정 규칙은 Java 패키지 또는 D-Bus 서비스 이름과 유사합니다.
디렉터리 이름을 Python 패키지의 고유 식별자로 만들려면 점 대신 밑줄(_
)을 사용하여 조직의 역방향 도메인 이름으로 애드온 이름을 접두사로 지정합니다. 예: com_example_hello_world
.
각 디렉터리에 __init___.py
파일을 생성해야 합니다. 이 파일이 누락된 디렉터리는 잘못된 Python 패키지로 간주됩니다.
애드온을 작성할 때 다음을 확인합니다.
-
각 인터페이스(그래픽 인터페이스 및 텍스트 인터페이스)에 대한 지원은 별도의 하위 패키지에서 사용할 수 있으며 이러한 하위 패키지는 그래픽 인터페이스의
gui
와 텍스트 기반 인터페이스의 이름이 gui로 지정됩니다. -
gui
및tui
패키지에는spokes
하위 패키지가 포함되어 있습니다. [1] - 패키지에 포함된 모듈에는 임의의 이름이 있습니다.
-
gui/
및tui/
디렉터리에는 모든 이름의 Python 모듈이 포함되어 있습니다. - 애드온의 실제 작업을 수행하는 서비스가 있습니다. 이 서비스는 Python 또는 다른 언어로 작성할 수 있습니다.
- 이 서비스는 D-Bus 및 Kickstart에 대한 지원을 구현합니다.
- addon에는 서비스의 자동 시작을 활성화하는 파일이 포함되어 있습니다.
다음은 모든 인터페이스 (Kickstart, GUI 및 TUI)를 지원하는 애드온의 샘플 디렉터리 구조입니다.
예 5.1. 샘플 애드온 구조
com_example_hello_world ├─ gui │ ├─ init.py │ └─ spokes │ └─ init.py └─ tui ├─ init.py └─ spokes └─ init.py
각 패키지에는 API에 정의된 하나 이상의 클래스에서 상속된 클래스를 정의하는 임의의 이름이 포함된 하나 이상의 모듈이 포함되어야 합니다.
애드온에서 새 카테고리를 정의해야 하는 경우 카테고리 하위 패키지를 포함할 수 있지만 권장되지는 않습니다.