5.7. Anaconda 애드온 구조

Anaconda 애드온은 __init___.py 및 기타 소스 디렉터리(subpackages)가 있는 디렉토리를 포함하는 Python 패키지입니다. Python에서는 각 패키지 이름을 한 번만 가져올 수 있으므로 패키지 최상위 디렉터리에 대한 고유 이름을 지정합니다. add-ons는 이름에 관계없이 로드되므로 임의의 이름을 사용할 수 있습니다. 즉, 유일한 요구 사항은 특정 디렉터리에 배치되어야 한다는 것입니다.

애드온에 대한 제안된 이름 지정 규칙은 Java 패키지 또는 D-Bus 서비스 이름과 유사합니다.

디렉터리 이름을 Python 패키지의 고유 식별자로 만들려면 점 대신 밑줄(_)을 사용하여 조직의 역방향 도메인 이름으로 애드온 이름을 접두사로 지정합니다. 예: com_example_hello_world.

중요

각 디렉터리에 __init___.py 파일을 생성해야 합니다. 이 파일이 누락된 디렉터리는 잘못된 Python 패키지로 간주됩니다.

애드온을 작성할 때 다음을 확인합니다.

  • 각 인터페이스(그래픽 인터페이스 및 텍스트 인터페이스)에 대한 지원은 별도의 하위 패키지에서 사용할 수 있으며 이러한 하위 패키지는 그래픽 인터페이스의 gui 와 텍스트 기반 인터페이스의 이름이 gui로 지정됩니다.
  • guitui 패키지에는 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에 정의된 하나 이상의 클래스에서 상속된 클래스를 정의하는 임의의 이름이 포함된 하나 이상의 모듈이 포함되어야 합니다.

참고

모든 애드온의 경우 docstring 규칙에 대한 Python의 PEP 8PEP 257 지침을 따르십시오. Anaconda 에서 docstrings의 실제 콘텐츠 형식에 대한 합의는 없으며, 유일한 요구 사항은 사람이 읽을 수 있다는 것입니다. 해당 애드온에 자동 생성된 문서를 사용하려는 경우 docstrings는 이를 수행하는 데 사용하는 툴킷의 지침을 따라야 합니다.

애드온에서 새 카테고리를 정의해야 하는 경우 카테고리 하위 패키지를 포함할 수 있지만 권장되지는 않습니다.



[1] 애드온에서 새 범주를 정의해야 하는 경우 gui 패키지에 카테고리 하위 패키지가 포함될 수 있지만 권장되지는 않습니다.