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, }