Запустите зависимый от тега скрипт Python в сборке Sphinx - PullRequest
0 голосов
/ 21 апреля 2020

Мне нужно запустить простой скрипт Python, чтобы скопировать набор файлов из одного каталога в другой на этапе сборки моей документации по Sphinx.

Функция копирования:

местоположение: source/_plugins/copy_firmware_files.py

import json, os, sys
from pathlib import Path
import shutil


def copy_firmware_files(device):
   # copy firmware files 

В настоящее время я импортирую этот модуль в мой conf.py в качестве конфигурации Файл содержит имя устройства, что упрощает выполнение кода. В настоящее время я делаю это следующим образом:

Файл конфигурации (conf.py)

расположение: source/conf.py

sys.path.append(os.path.abspath("_plugins"))
from copy_firmware_files import *

# initialize files depending on build
copy_firmware_files(device_name)

Выше работает как задумано, то есть соответствующие файлы копируются в соответствующие папки перед сборкой. Однако я не уверен, что это «правильный» способ сделать это. Есть ли более правильный способ достижения того же результата?

1 Ответ

0 голосов
/ 21 апреля 2020

Есть несколько способов, но кажется, что два являются наиболее подходящими. Они представляют собой файлы c и могут быть обработаны Sphinx как таковые.

  1. html_extra_path является одним из вариантов.

  2. Если вы хотите предоставить ссылки для загрузки файлов, вы можете использовать директиву download .

    See :download:`this example script <../example.py>`.
    
...