복붙노트

[PYTHON] Sphinx autodoc-skip-member를 내 함수에 연결하십시오.

PYTHON

Sphinx autodoc-skip-member를 내 함수에 연결하십시오.

나는 스핑크스의 autodoc-skip-member 이벤트를 사용하여 문서를위한 특정 파이썬 클래스의 멤버 일부를 선택하려고한다.

그러나 스핑크스 문서에서는 명확하지 않으며, 설명하는 예제를 찾을 수 없습니다.이 연결 코드는 어디에 두어야합니까? 나는 Sphinx.connect를보고 내 conf.py에 들어 있다고 생각하지만 conf.py에서이 코드를 변형하려고 시도 할 때 연결해야하는 app 객체를 찾을 수 없습니다 () :

def maybe_skip_member(app, what, name, obj, skip,
                                  options):
    print app, what, name, obj, skip, options
    return False

# This is not even close to correct:
#from sphinx.application import Sphinx
#Sphinx().connect('autodoc-skip-member', maybe_skip_member)

간단한 예제에 대한 포인터가 이상적입니다.

해결법

  1. ==============================

    1.아하, 작은 인터넷 검색에 대한 마지막 도랑 노력은이 예제를 보여 주며 아래로 스크롤합니다. 분명히 conf.py의 setup () 함수가 응용 프로그램과 함께 호출됩니다. conf.py의 맨 아래에 다음을 정의 할 수있었습니다.

    아하, 작은 인터넷 검색에 대한 마지막 도랑 노력은이 예제를 보여 주며 아래로 스크롤합니다. 분명히 conf.py의 setup () 함수가 응용 프로그램과 함께 호출됩니다. conf.py의 맨 아래에 다음을 정의 할 수있었습니다.

    def maybe_skip_member(app, what, name, obj, skip, options):
        print app, what, name, obj, skip, options
        return True
    
    def setup(app):
        app.connect('autodoc-skip-member', maybe_skip_member)
    

    어느 것이 분명히 쓸모가 없습니까 (모든 것을 건너 뜁니다),하지만 그것은 내가 찾고 있었고 찾을 수없는 최소한의 예입니다 ...

  2. ==============================

    2.이 대답은 bstpierre의 답변을 확대합니다. 아래는 내 conf.py의 관련 부분입니다.

    이 대답은 bstpierre의 답변을 확대합니다. 아래는 내 conf.py의 관련 부분입니다.

    autodoc_default_flags = ['members', 'private-members', 'special-members',
                             #'undoc-members',
                             'show-inheritance']
    
    def autodoc_skip_member(app, what, name, obj, skip, options):
        exclusions = ('__weakref__',  # special-members
                      '__doc__', '__module__', '__dict__',  # undoc-members
                      )
        exclude = name in exclusions
        return skip or exclude
    
    def setup(app):
        app.connect('autodoc-skip-member', autodoc_skip_member)
    
  3. from https://stackoverflow.com/questions/3757500/connect-sphinx-autodoc-skip-member-to-my-function by cc-by-sa and MIT license