Passed
Push — master ( ab2fc5...0b781a )
by Matěj
02:32 queued 12s
created

oval_graph.arf_to_json.ArfToJson.prepare_data()   A

Complexity

Conditions 4

Size

Total Lines 14
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 4

Importance

Changes 0
Metric Value
cc 4
eloc 13
nop 2
dl 0
loc 14
ccs 13
cts 13
cp 1
crap 4
rs 9.75
c 0
b 0
f 0
1 1
import webbrowser
2 1
import json
3 1
import os
4 1
import shutil
5 1
import pprint
6 1
from datetime import datetime
7 1
import sys
8
9 1
from .converter import Converter
10 1
from .client import Client
11
12
13 1
class ArfToJson(Client):
14
15 1
    def run_gui_and_return_answers(self):
16
        try:
17
            if sys.stdout.isatty():
18
                import inquirer
19
                return inquirer.prompt(self.get_questions())
20
            else:
21
                return {'rules': [
22
                    rule['id_rule'] for rule in self.search_rules_id()]}
23
        except ImportError:
24
            print(self.get_selection_rules())
25
            return None
26
27 1
    def create_dict_of_rule(self, rule_id):
28 1
        return self.xml_parser.get_oval_tree(rule_id).save_tree_to_dict()
29
30 1
    def save_dict_as_json(self, dict_, src):
31 1
        with open(src + '.json', "w+") as f:
32 1
            json.dump(dict_, f)
33
34 1
    def prepare_data(self, rules):
35 1
        try:
36 1
            out = []
37 1
            for rule in rules['rules']:
38 1
                oval_tree_dict = self.create_dict_of_rule(rule)
39 1
                if self.out is not None:
40 1
                    src = self.get_save_src(rule)
41 1
                    self.save_dict_as_json(oval_tree_dict, src)
42 1
                    out.append(src)
43
                else:
44 1
                    print(str(json.dumps(oval_tree_dict, sort_keys=False, indent=4)))
45 1
            return out
46 1
        except Exception as error:
47
            raise ValueError('Rule: "{}" Error: "{}"'.format(rule, error))
48