سؤال

يحتوي Sphinx على ميزة تسمى automethod هذا يستخلص الوثائق من مستدعي الأسلوب ويدمج ذلك في الوثائق. ولكن لا يدمج Docstring فحسب ، بل أيضًا توقيع الطريقة (الاسم + الوسائط). كيف أتضخم فقط docstring (باستثناء توقيع الطريقة)؟

المرجع: http://sphinx.pocoo.org/ext/autodoc.html

هل كانت مفيدة؟

المحلول

أعتقد أن ما تبحث عنه هو:

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 إلى الإصدار الحالي كنهج أفضل إذا كان ذلك ممكنًا على الإطلاق في نشرك المحدد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top