عرض * فقط * docstring في وثائق sphinx
-
21-09-2019 - |
سؤال
يحتوي Sphinx على ميزة تسمى automethod
هذا يستخلص الوثائق من مستدعي الأسلوب ويدمج ذلك في الوثائق. ولكن لا يدمج Docstring فحسب ، بل أيضًا توقيع الطريقة (الاسم + الوسائط). كيف أتضخم فقط docstring (باستثناء توقيع الطريقة)؟
المحلول
أعتقد أن ما تبحث عنه هو:
from sphinx.ext import autodoc
class DocsonlyMethodDocumenter(autodoc.MethodDocumenter):
def format_args(self):
return None
autodoc.add_documenter(DocsonlyMethodDocumenter)
لكل المصادر الحالية هذا يجب أن يسمح بالتجاوز الفئة المسؤولة عن توثيق الأساليب (الإصدارات القديمة من add_documenter
منع مثل هذه التجاوزات ، لكن الآن مسموح بها صراحة). نأخذ format_args
لا شيء ، بالطبع ، هو الطريقة الموثقة في autodoc
أن أقول "لا تهتم بالتوقيع".
أعتقد أن هذه هي الطريقة النظيفة والمؤسسة لأداء هذه المهمة ، وعلى هذا النحو ، الأفضل من البدائل monkeypatching. إذا كنت بحاجة للعيش مع بعض الإصدارات القديمة من sphinx
ومع ذلك قد تضطر بالفعل إلى monkeypatch (autodoc.MethodDocumenter.format_args=lambda _:None
-eek!-) على الرغم من أنني أوصي بالترقية sphinx
إلى الإصدار الحالي كنهج أفضل إذا كان ذلك ممكنًا على الإطلاق في نشرك المحدد.