Skip to content

sphinx-apidoc doesn't accept 'exclude_patterns' #4771

@stephenfin

Description

@stephenfin

Subject: sphinx-apidoc in Sphinx 1.7+ doesn't accept the exclude_patterns parameter

Problem

If I want to exclude some modules from sphinx-apidoc doc generation, I can just list them as additional arguments. For example:

$ sphinx-apidoc . -H 'Modules' -o doc/source/contributor/api setup.py \
  openstackclient/volume/v3 openstackclient/tests/ openstackclient/tests/*

This works with Sphinx 1.6.x but fails with Sphinx 1.7.x. I think I broke this in the move to argparse but, try as I may, I can't figure out how to fix it 😞

Procedure to reproduce the problem

$ git clone https://github.com/openstack/python-openstackclient
$ cd python-openstackclient
$ tox -e docs  # to install all dependencies

Now, build docs with the current version of Sphinx used (1.6.5):

$ sphinx-apidoc . -H 'Modules' -o doc/source/contributor/api setup.py openstackclient/volume/v3 openstackclient/tests/ openstackclient/tests/*

Then attempt to do the same with the latest Sphinx (1.7.2):

$ pip install 'sphinx>=1.7'
$ sphinx-apidoc . -H 'Modules' -o doc/source/contributor/api setup.py openstackclient/volume/v3 openstackclient/tests/ openstackclient/tests/*

Error logs / results

$ sphinx-apidoc . -H 'Modules' -o doc/source/contributor/api setup.py openstackclient/volume/v3 openstackclient/tests/ openstackclient/tests/*                
usage: sphinx-apidoc [OPTIONS] -o <OUTPUT_PATH> <MODULE_PATH> [EXCLUDE_PATTERN, ...]
sphinx-apidoc: error: unrecognized arguments: setup.py openstackclient/volume/v3 openstackclient/tests/ openstackclient/tests/*

Expected results

$ sphinx-apidoc . -H 'Modules' -o doc/source/contributor/api setup.py openstackclient/volume/v3 openstackclient/tests/ openstackclient/tests/*                                                                     
Creating file doc/source/contributor/api/openstackclient.rst.
Creating file doc/source/contributor/api/openstackclient.api.rst.
Creating file doc/source/contributor/api/openstackclient.common.rst.
Creating file doc/source/contributor/api/openstackclient.compute.rst.
Creating file doc/source/contributor/api/openstackclient.compute.v2.rst.
Creating file doc/source/contributor/api/openstackclient.identity.rst.
Creating file doc/source/contributor/api/openstackclient.identity.v2_0.rst.
Creating file doc/source/contributor/api/openstackclient.identity.v3.rst.
Creating file doc/source/contributor/api/openstackclient.image.rst.
Creating file doc/source/contributor/api/openstackclient.image.v1.rst.
Creating file doc/source/contributor/api/openstackclient.image.v2.rst.
Creating file doc/source/contributor/api/openstackclient.network.rst.
Creating file doc/source/contributor/api/openstackclient.network.v2.rst.
Creating file doc/source/contributor/api/openstackclient.object.rst.
Creating file doc/source/contributor/api/openstackclient.object.v1.rst.
Creating file doc/source/contributor/api/openstackclient.volume.rst.
Creating file doc/source/contributor/api/openstackclient.volume.v1.rst.
Creating file doc/source/contributor/api/openstackclient.volume.v2.rst.
Creating file doc/source/contributor/api/modules.rst.

Reproducible project / your project

Environment info

  • OS: Linux
  • Python version: 2.7
  • Sphinx version: 1.7.2

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions