Source code for sphinx_ros

"""
``sphinx_ros`` module
=====================

Sphinx extension adding several directives to document ROS packages.
"""

from pkg_resources import get_distribution, DistributionNotFound

try:
    from sphinx.domains import StandardDomain
except ImportError:
    from sphinx.domains.std import StandardDomain
from .domain import RosDomain

try:
    __version__ = get_distribution(__name__).version
except DistributionNotFound:
    # Package is not installed
    __version__ = 'unknown'


[docs]def setup(app): """ Adds the ROS domain to the Sphinx application and the labels to the ROS indices to the standard domain. It also adds the configuration values :confval:`ros_add_package_names` and :confval:`ros_msg_reference_version`. :param app: The Sphinx application :type app: sphinx.application.Sphinx """ app.add_domain(RosDomain) app.add_config_value('ros_add_package_names', True, 'html') app.add_config_value('ros_msg_reference_version', 'melodic', 'html') StandardDomain.initial_data['labels'].\ update(RosDomain.initial_data['labels']) StandardDomain.initial_data['anonlabels'].\ update(RosDomain.initial_data['anonlabels']) return { 'version': __version__, 'parallel_read_safe': False, 'parallel_write_safe': True }