documentationpython-sphinxautodocautoclass

How to order class attributes before methods with autoclass in sphinx-docs?


When generating the class docs using .. autoclass:: I tried with the flag autodoc_member_order = 'groupwise'. However, the methods are coming above class attributes.

Any suggestions on how to order class attributes above class methods?


Solution

  • At the moment, you cannot change the order by specifying a setting. That said, it is very easy to override the default ordering:

    # In conf.py
    
    # Override group order in groupwise mode
    from sphinx.ext import autodoc
    
    # # Original order
    # autodoc.Documenter.member_order = 0
    # autodoc.ExceptionDocumenter.member_order = 10
    # autodoc.ClassDocumenter.member_order = 20
    # autodoc.FunctionDocumenter.member_order = 30
    # autodoc.DataDocumenter.member_order = 40
    # autodoc.MethodDocumenter.member_order = 50
    # autodoc.AttributeDocumenter.member_order = 60
    # autodoc.PropertyDocumenter.member_order = 60
    
    # Overridden
    autodoc.Documenter.member_order = 0
    autodoc.DataDocumenter.member_order = 10
    autodoc.FunctionDocumenter.member_order = 20
    autodoc.ClassDocumenter.member_order = 30
    autodoc.AttributeDocumenter.member_order = 40
    autodoc.PropertyDocumenter.member_order = 40
    autodoc.MethodDocumenter.member_order = 50
    autodoc.ExceptionDocumenter.member_order = 60
    

    For the change to be applied, don't forget to clean up your build folder