gonets/SRV/docs/conf.py

83 lines
2.6 KiB
Python
Raw Normal View History

2025-10-14 12:17:13 +05:00
import os
import sys
from datetime import datetime
2025-10-14 16:38:38 +05:00
# Для удобства импорта модулей из SRV
2025-10-14 12:17:13 +05:00
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
2025-10-14 16:11:12 +05:00
napoleon_google_docstring = True
napoleon_numpy_docstring = False
2025-10-14 12:17:13 +05:00
html_theme = 'furo'
2025-10-14 16:38:38 +05:00
# Исходники структуры документации
2025-10-14 12:17:13 +05:00
source_suffix = {
'.rst': 'restructuredtext',
}
master_doc = 'index'
html_static_path = ['_static']
2025-10-14 16:38:38 +05:00
# Создание по умолчанию _static если не существует
2025-10-14 12:17:13 +05:00
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)
2025-10-14 16:38:38 +05:00
# Мокирование тяжёлых/опциональных модулей для RTD/локальной сборки документации
2025-10-14 12:17:13 +05:00
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',
2025-10-14 16:38:38 +05:00
# мокирование проблемных локальных модулей при сборке документации
2025-10-14 16:11:12 +05:00
'config.init_config',
]
autosummary_mock_imports = autodoc_mock_imports
suppress_warnings = [
'autodoc.mocked_object',
2025-10-14 12:17:13 +05:00
]
os.environ.setdefault('SPHINX_BUILD', '1')
autodoc_default_options = {
'members': True,
'undoc-members': True,
'private-members': False,
'show-inheritance': True,
2025-10-14 16:11:12 +05:00
'no-index': True,
2025-10-14 12:17:13 +05:00
}