CcCommandLineOptions.process_actions()   A
last analyzed

Complexity

Conditions 4

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
dl 0
loc 5
rs 9.2
c 0
b 0
f 0
1
# -*- coding: utf-8 -*-
2
from cookiecutter import cli
3
4
import click
5
6
from docutils import nodes
7
from docutils.parsers import rst
8
from docutils.statemachine import ViewList
9
10
11
class CcCommandLineOptions(rst.Directive):
12
    def _format_option(self, option):
13
        return [
14
            ".. _`%s`:" % option.name,
15
            "",
16
            ".. option:: " + ", ".join(option.opts),
17
            "",
18
            option.help,
19
            ""
20
        ]
21
22
    def process_actions(self):
23
        for option in cli.main.params:
24
            if isinstance(option, click.core.Option):
25
                for line in self._format_option(option):
26
                    self.view_list.append(line, "")
27
28
    def run(self):
29
        node = nodes.paragraph()
30
        node.document = self.state.document
31
        self.view_list = ViewList()
32
        self.process_actions()
33
        self.state.nested_parse(self.view_list, 0, node)
34
        return [node]
35
36
37
def setup(app):
38
    app.add_directive('cc-command-line-options', CcCommandLineOptions)
39