Exemplo n.º 1
0
def ccjson(paths):
    """
    Modified version of radon.cli.cc.

    This silently returns the digest as a JSON (string).
    """

    config = Config(
        min=_cfg.get_value('cc_min', str, 'A').upper(),
        max=_cfg.get_value('cc_max', str, 'F').upper(),
        exclude=_cfg.get_value('exclude', str, None),
        ignore=_cfg.get_value('ignore', str, None),
        show_complexity=_cfg.get_value('show_complexity', bool, False),
        average=_cfg.get_value('average', bool, False),
        total_average=_cfg.get_value('total_average', bool, False),
        order=getattr(cc_mod,
                      _cfg.get_value('order', str, 'SCORE').upper(),
                      getattr(cc_mod, 'SCORE')),
        no_assert=_cfg.get_value('no_assert', bool, False),
        show_closures=_cfg.get_value('show_closures', bool, False),
        include_ipynb=_cfg.get_value('include_ipynb', bool, False),
        ipynb_cells=_cfg.get_value('ipynb_cells', bool, False)
    )

    harvester = CCHarvester(paths, config)

    return harvester.as_json()
Exemplo n.º 2
0
def radon_test(f):
    filename = 'a1/a1_solution_' + f + '.py'
    with open(filename) as file:
        source = file.read()
        cv = ComplexityVisitor.from_code(source)
        res = sorted_results(cv.functions + cv.classes, order=LINES)
        output = {}
        for r in res:
            # print(f'Function: {r.name}, CC: {r.complexity}')
            output['CC'] = r.complexity

        res = analyze(source)
        # pprint(res)

        basic = {'loc': res[0],
                 'lloc': res[1],
                 'sloc': res[2],
                 'comments': res[3],
                 'multi': res[4],
                 'blank': res[5],
                 'single_comment': res[6]}
        output['Lines'] = basic

        config = Config(min='A',
                        max='F',
                        exclude=None,
                        ignore=None,
                        no_assert=False,
                        show_closures=False,
                        order=LINES)

        ch = CCHarvester([filename], config)
        res = ch.results
        x = json.loads(ch.as_json())
        # pprint(x)

        res = h_visit(source)

        hals = {'h1': res[0],
                'h2': res[1],
                'N1': res[2],
                'N2': res[3],
                'vocabulary': res[4],
                'length': res[5],
                'calculated_length': res[6],
                'volume': res[7],
                'difficulty': res[8],
                'effort': res[9],
                'time': res[10],
                'bugs': res[11]}

    output['Halstead'] = hals
    pprint({f: output})