es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Indicando a Sphinx que no incluya la clase base

Tengo un módulo llamado wrapper_iperf que básicamente envuelve algunas llamadas a iperf3. El módulo contiene una clase llamada “ThreadWithReturnValue(Thread)” que obviamente se deriva de Thread.

Esta clase contiene los métodos sobrescritos “run” y “join”.

class ThreadWithReturnValue(Thread):

    def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
        pass

    def run(self):
        pass

    def join(self, *args):
        pass

Ahora estoy tratando de documentar el comportamiento del resto del módulo. Para hacerlo, uso Sphinx y el siguiente archivo rst:

.. automodule:: wrapper_iperf
    :members:

.. toctree::
   :maxdepth: 2
   :caption: Contenido:

Ahora, cuando construyo la documentación SIEMPRE obtendré la descripción de la clase base “Thread” y los métodos “run” y “join”.

Si uso “:inherited-members: ThreadWithReturnValue” obtendré aún más documentación para todos los miembros de la clase base Thread.

Si documento esas funciones miembro yo mismo en mi clase heredada, obtendré la salida de mi clase heredada.

¿Cómo le digo a Sphinx que no quiero que se repita la documentación para esta clase específica “Thread” en mi documentación?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para excluir la documentación de la clase base “Thread” al documentar la clase “ThreadWithReturnValue” en Sphinx, puedes utilizar la opción de configuración “autodoc_default_flags” en el archivo de configuración de Sphinx (por lo general “conf.py”).

    Puedes configurar “autodoc_default_flags” para excluir la opción “members” de la clase “Thread”, de la siguiente manera:

    # conf.py
    
    ...
    
    # excluir la opción "members" para la clase Thread
    autodoc_default_flags = ['exclude-members=Thread.*']
    

    Esto excluirá cualquier miembro de la clase “Thread” del documento en Sphinx, solucionando el problema de repetición en la documentación.

Comments are closed.