82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
import os
|
|
import sys
|
|
from datetime import datetime
|
|
|
|
# Для удобства импорта модулей из SRV
|
|
sys.path.insert(0, os.path.abspath('..'))
|
|
|
|
project = 'GONETS SRV'
|
|
author = 'GONETS'
|
|
copyright = f"{datetime.now().year}, {author}"
|
|
release = '0.0.3'
|
|
|
|
extensions = [
|
|
'sphinx.ext.autodoc',
|
|
'sphinx.ext.napoleon',
|
|
'sphinx.ext.viewcode',
|
|
'sphinx.ext.autosummary',
|
|
'sphinx.ext.autodoc.typehints',
|
|
]
|
|
|
|
autosummary_generate = True
|
|
napoleon_google_docstring = False
|
|
napoleon_numpy_docstring = False
|
|
napoleon_use_param = True
|
|
napoleon_use_rtype = True
|
|
napoleon_google_docstring = True
|
|
napoleon_numpy_docstring = False
|
|
|
|
html_theme = 'furo'
|
|
|
|
# Исходники структуры документации
|
|
source_suffix = {
|
|
'.rst': 'restructuredtext',
|
|
}
|
|
|
|
master_doc = 'index'
|
|
|
|
html_static_path = ['_static']
|
|
|
|
# Создание по умолчанию _static если не существует
|
|
static_dir = os.path.join(os.path.dirname(__file__), '_static')
|
|
os.makedirs(static_dir, exist_ok=True)
|
|
|
|
# Временная директория данных для сборки документации
|
|
data_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '_build', '.sphinx_tmp'))
|
|
os.makedirs(data_dir, exist_ok=True)
|
|
|
|
os.environ.setdefault("GONETS_DATA_DIR", data_dir)
|
|
os.environ.setdefault("GONETS_USERS_PATH", os.path.join(data_dir, "users.json"))
|
|
os.environ.setdefault("GONETS_SESSIONS_PATH", os.path.join(data_dir, "sessions.json"))
|
|
|
|
config_path = os.path.join(data_dir, "config.ini")
|
|
if not os.path.exists(config_path):
|
|
with open(config_path, "w", encoding="utf-8") as config_file:
|
|
config_file.write("[JWT]\nsecret_key = sphinx-docs-secret\n")
|
|
os.environ.setdefault("GONETS_CONFIG_PATH", config_path)
|
|
|
|
# Мокирование тяжёлых/опциональных модулей для RTD/локальной сборки документации
|
|
autodoc_mock_imports = [
|
|
'gi', 'pygobject',
|
|
'pywifi', 'sdbus', 'sdbus_async', 'sdbus_async.networkmanager',
|
|
'dbus', 'dbus.mainloop', 'dbus.mainloop.glib',
|
|
'pydbus', 'mac_vendor_lookup', 'scapy', 'scapy.layers.l2', 'scapy.sendrecv',
|
|
# мокирование проблемных локальных модулей при сборке документации
|
|
'config.init_config',
|
|
]
|
|
|
|
autosummary_mock_imports = autodoc_mock_imports
|
|
|
|
suppress_warnings = [
|
|
'autodoc.mocked_object',
|
|
]
|
|
|
|
os.environ.setdefault('SPHINX_BUILD', '1')
|
|
|
|
autodoc_default_options = {
|
|
'members': True,
|
|
'undoc-members': True,
|
|
'private-members': False,
|
|
'show-inheritance': True,
|
|
'no-index': True,
|
|
}
|