Passed
Push — master ( b5a080...903f35 )
by Jan
06:45 queued 01:03
created

oval_graph.command_line   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 9
eloc 46
dl 0
loc 69
ccs 0
cts 42
cp 0
rs 10
c 0
b 0
f 0

5 Functions

Rating   Name   Duplication   Size   Complexity  
A arf_to_graph() 0 2 1
A json_to_graph() 0 2 1
A arf_to_json() 0 2 1
A catch_errors() 0 8 3
A main() 0 8 3
1
"""
2
    This file contains entry points for commands
3
"""
4
5
import traceback
6
7
from .command_line_client.arf_to_html import ArfToHtml
8
from .command_line_client.arf_to_json import ArfToJson
9
from .command_line_client.json_to_html import JsonToHtml
10
from .exceptions import NotTestedRule
11
12
C_RED = '\033[91m'
13
C_END = '\033[0m'
14
ERRORS = (ValueError, TypeError, ResourceWarning, NotTestedRule)
15
16
17
def arf_to_graph(params=None):
18
    catch_errors(ArfToHtml, params)
19
20
21
def arf_to_json(params=None):
22
    catch_errors(ArfToJson, params)
23
24
25
def json_to_graph(params=None):
26
    catch_errors(JsonToHtml, params)
27
28
29
def catch_errors(client_class, params):
30
    client = client_class(params)
31
    try:
32
        main(client)
33
    except ERRORS as error:
34
        if client.verbose:
35
            traceback.print_exc()
36
        print('{}Error: {}{}'.format(C_RED, error, C_END))
37
38
39
def main(client):
40
    client.load_file()
41
    rules = client.search_rules_id()
42
    if len(rules) > 1:
43
        answers = client.run_gui_and_return_answers()
44
        if answers is not None:
45
            return client.prepare_data(answers)
46
    return client.prepare_data({'rules': [rules[0]]})
47
48
49
if __name__ == '__main__':
50
    import argparse
51
52
    parser = argparse.ArgumentParser()
53
    subparsers = parser.add_subparsers()
54
55
    parser_arf_to_graph = subparsers.add_parser(
56
        'arf-to-graph', help='Executes the arf-to-graph command.')
57
    parser_arf_to_graph.set_defaults(command=arf_to_graph)
58
59
    parser_arf_to_json = subparsers.add_parser(
60
        'arf-to-json', help='Executes the arf-to-json command.')
61
    parser_arf_to_json.set_defaults(command=arf_to_json)
62
63
    parser_json_to_graph = subparsers.add_parser(
64
        'json-to-graph', help='Executes the json-to-graph command.')
65
    parser_json_to_graph.set_defaults(command=json_to_graph)
66
67
    args, command_args = parser.parse_known_args()
68
    args.command(command_args)
69