File: conf.py

package info (click to toggle)
sphinx-needs 5.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 11,924 kB
  • sloc: python: 21,132; javascript: 187; makefile: 89; sh: 29; xml: 10
file content (76 lines) | stat: -rw-r--r-- 1,779 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
extensions = ["sphinx_needs"]

needs_table_style = "TABLE"

needs_types = [
    {
        "directive": "story",
        "title": "User Story",
        "prefix": "US_",
        "color": "#BFD8D2",
        "style": "node",
    },
    {
        "directive": "spec",
        "title": "Specification",
        "prefix": "SP_",
        "color": "#FEDCD2",
        "style": "node",
    },
    {
        "directive": "impl",
        "title": "Implementation",
        "prefix": "IM_",
        "color": "#DF744A",
        "style": "node",
    },
    {
        "directive": "test",
        "title": "Test Case",
        "prefix": "TC_",
        "color": "#DCB239",
        "style": "node",
    },
]

needs_external_needs = [
    {
        "base_url": "http://my_company.com/docs/v1/",
        "json_path": "needs_test_small.json",
        "id_prefix": "ext_",
    }
]


def my_custom_warning_check(need, log):
    if need["status"] == "open":
        log.info(f"{need['id']} status must not be 'open'.")
        return True
    return False


needs_warnings = {
    "invalid_status": "status not in ['open', 'closed', 'done', 'example_2', 'example_3']",
    "type_match": my_custom_warning_check,
}


def custom_warning_func(need, log):
    return need["status"] == "example_3"


def setup(app):
    from sphinx_needs.api.configuration import add_warning

    add_warning(app, "api_warning_filter", filter_string="status == 'example_2'")
    add_warning(app, "api_warning_func", custom_warning_func)
    add_warning(
        app,
        "invalid_status",
        "status not in ['open', 'closed', 'done', 'example_2', 'example_3']",
    )


# Needs option to set True or False to raise sphinx-warning for each not passed warning check
# default is False
needs_warnings_always_warn = True