Skip to main content

Sphinx mocking autodoc extension

Project description

Mock imports for build docs without install packages in environment.

This extension add :mockimport: and :mocktype: for standard automodule derictive from autodoc.

Main goal of extension is to solve task defined on question.

Install

pip install sphinxcontrib-mockautodoc

Usage

Add mockautodoc to extensions list:

extenstion = ['sphinx.ext.autodoc', 'sphinxcontrib.mockautodoc', ]

The extension add two options to standard automodule:

  • :mockimport: list of name spaces to mock separated by ‘,’.

  • :mocktype: list of objects which must be mock as type object

    for right way subclass them in sources, separated by ‘,’.

If you have module for documenting:

from twisted.internet import protocol, defer

@defer.inlineCallbacks
def my_func():
    """my function"""
    pass

class MyProtocol(protocol.Protocol):
    """my protocol"""
    pass

And twisted not installed you can document module like that:

.. automodule:: package
    :mockimport: twisted
    :mocktype: protocol.Protocol

Where on :mockimport: will be mocked all twisted.* imports in automodule building context. And :mocktype: means which instances must be object types to successful subclass them without loss target documentation.

mockatudoc settings may be defined on conf.py and all automodule directives with present :mockimport: will be mocked. Where data on mockatodoc settings will be summed with :mockimport: and :mocktype: options:

mockautodoc = {
    'mockimport': ['twisted',],
    'mocktype': ['protocol.Protocol'],
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page