def tree_chart():
    with codecs.open("../data/GDP_data.json",mode='r',encoding="utf-8") as f:
        j = json.load(f)
    data = [j]
    tree = Tree(title="World country GDP", width=1000, height=600, title_pos="center")
    tree.add(name="First", data=data)
    return tree
Exemple #2
0
def test_tree_default():
    data = [
        {
            "children": [
                {"children": [], "name": "B"},
                {
                    "children": [
                        {
                            "children": [{"children": [], "name": "I"}],
                            "name": "E",
                        },
                        {"children": [], "name": "F"},
                    ],
                    "name": "C",
                },
                {
                    "children": [
                        {
                            "children": [
                                {"children": [], "name": "J"},
                                {"children": [], "name": "K"},
                            ],
                            "name": "G",
                        },
                        {"children": [], "name": "H"},
                    ],
                    "name": "D",
                },
            ],
            "name": "A",
        }
    ]
    copy_data = deepcopy(data)
    data1 = Tree._set_collapse_interval(data)
    assert copy_data == data1
Exemple #3
0
def test_tree_collapse_interval():
    with codecs.open(os.path.join("fixtures", "flare.json"),
                     "r",
                     encoding="utf-8") as f:
        j = json.load(f)
    copy_data = deepcopy(j)
    data = Tree._set_collapse_interval([j], interval=2)
    assert data != copy_data
Exemple #4
0
def tree():
    data = [{
        "children": [{
            "children": [],
            "name": "海林"
        }, {
            "children": [],
            "name": "道固"
        }, {
            "children": [],
            "name": "我"
        }],
        "name":
        "雄哥"
    }]

    tree = Tree("雄哥的小弟阵容")
    tree.add("", data)
    # tree.render()
    return render_template(
        'tree.html',
        tree=tree.render_embed(),
        host=REMOTE_HOST,
        script_list=tree.get_js_dependencies(),
    )
Exemple #5
0
def relation():

    dbconn = pymysql.connect(host="***",
                             user="******",
                             password="******",
                             port=3306,
                             charset="utf8",
                             db="***")

    #读取数据库JSON数据
    sql = "select json from words_relation_json where id =1"

    cursor = dbconn.cursor()
    cursor.execute(sql)
    data = cursor.fetchall()
    dbconn.commit()
    cursor.close()
    dbconn.close()

    #字符串转JSON
    result = json.loads(data[0][0].replace("'", "\""))

    #树图
    tree = Tree(width=2000, height=2400)
    tree.add("", result, tree_collapse_interval=1)
    tree.render()
    javascript_snippet = TRANSLATOR.translate(tree.options)

    return render_template(
        "relation.html",
        chart_id=tree.chart_id,
        host=REMOTE_HOST,
        renderer=tree.renderer,
        my_width="95%",
        my_height=2400,
        custom_function=javascript_snippet.function_snippet,
        options=javascript_snippet.option_snippet,
        script_list=tree.get_js_dependencies(),
    )
Exemple #6
0
 def init_canvas(self, ID, estimated_lines):
     new_canvas = Tree("Passage merge: " + ID, width=1190, height = estimated_lines * 10)
     return new_canvas
Exemple #7
0
def redis_status(redis_master=None):
    db_redis = db_idc.redis_info
    db_server = db_idc.idc_servers
    DATA = []
    keys = []
    if redis_master:
        try:
            M_key = defaultdict()
            try:
                redis_infos = db_redis.query.with_entities(
                    db_redis.server_id, db_redis.port).all()
                for infos in redis_infos:
                    try:
                        id, port = infos
                        vals = db_redis.query.with_entities(
                            db_redis.server_id, db_redis.port).filter(
                                and_(db_redis.Master_Host == id,
                                     db_redis.Master_Port == port)).all()
                        if vals:
                            RC.hset(M_key, '%s:%s' % (id, port), vals)
                    except:
                        continue
            except Exception as e:
                logging.error(e)
            KEY = 'op_redis_master_lists'
            RC.delete(KEY)
            redis_master = redis_master.split(':')
            server_id = db_server.query.with_entities(db_server.id).filter(
                db_server.hostname == redis_master[0]).all()
            if server_id:
                redis_master[0] = server_id[0][0]
            RC.lpush(KEY, redis_master)
            while True:
                if RC.llen(KEY) > 0:
                    id, port = eval(RC.lpop(KEY))
                    vals = RC.hget(M_key, '%s:%s' % (id, port))
                    if vals:
                        key = 'op_redis_nexus_%s:%s' % (id, port)
                        RC.set(key, vals)
                        for val in eval(vals):
                            id, port = val
                            vals = RC.hget(M_key, '%s:%s' % (id, port))
                            if vals:
                                RC.lpush(KEY, val)
                else:
                    break
            id, port = redis_master
            hostname = RC_CLUSTER.hget('op_server_hostnames', id)
            if hostname:
                name = hostname
                DATA.append({"children": [], "name": '%s:%s' % (name, port)})
            mkey = 'op_redis_nexus_%s:%s' % (id, port)
            keys.append(mkey)
            for key in keys:
                name = key.replace('op_redis_nexus_', '').split(':')
                hostname = RC_CLUSTER.hget('op_server_hostnames', name[0])
                if hostname:
                    name[0] = hostname
                name = ':'.join(name)
                if RC.exists(key):
                    for val in eval(RC.get(key)):
                        id, port = val
                        key = 'op_redis_nexus_%s:%s' % (id, port)
                        if RC.exists(key):
                            keys.append(key)
                        hostname = RC_CLUSTER.hget('op_server_hostnames', id)
                        if hostname:
                            id = hostname
                        for datas in DATA:
                            if datas['name'] == name:
                                datas["children"].append({
                                    "children": [],
                                    "name":
                                    '%s:%s' % (id, port)
                                })
                            else:
                                for data in datas["children"]:
                                    if data['name'] == name:
                                        data["children"].append({
                                            "children": [],
                                            "name":
                                            '%s:%s' % (id, port)
                                        })
                                    else:
                                        for DAT in data["children"]:
                                            if DAT['name'] == name:
                                                DAT["children"].append({
                                                    "children": [],
                                                    "name":
                                                    '%s:%s' % (id, port)
                                                })
                                            else:
                                                for dat in DAT["children"]:
                                                    if dat['name'] == name:
                                                        dat["children"].append(
                                                            {
                                                                "children": [],
                                                                "name":
                                                                '%s:%s' %
                                                                (id, port)
                                                            })
                                                    else:
                                                        for da in dat[
                                                                "children"]:
                                                            if da['name'] == name:
                                                                da["children"].append(
                                                                    {
                                                                        "children":
                                                                        [],
                                                                        "name":
                                                                        '%s:%s'
                                                                        %
                                                                        (id,
                                                                         port)
                                                                    })
                                                            else:
                                                                for dd in da[
                                                                        "children"]:
                                                                    if dd['name'] == name:
                                                                        dd["children"].append({
                                                                            "children":
                                                                            [],
                                                                            "name":
                                                                            '%s:%s'
                                                                            %
                                                                            (id,
                                                                             port
                                                                             )
                                                                        })
                                                                    else:
                                                                        for d in dd[
                                                                                "children"]:
                                                                            if d['name'] == name:
                                                                                d["children"].append({"children": [],"name": '%s:%s' % (id, port)})
                                                                            else:
                                                                                for t in d[
                                                                                        "children"]:
                                                                                    if t['name'] == name:
                                                                                        t["children"].append({"children": [],"name": '%s:%s' % (id, port)})
                                                                                    else:
                                                                                        for tt in t[
                                                                                                "children"]:
                                                                                            if tt['name'] == name:
                                                                                                tt["children"].append({"children": [],"name": '%s:%s' % (id, port)})
                                                                                            else:
                                                                                                for dt in tt[
                                                                                                        "children"]:
                                                                                                    if dt['name'] == name:
                                                                                                        dt["children"].append({
                                                                                                                "children": [],
                                                                                                                "name": '%s:%s' % (
                                                                                                                id,
                                                                                                                port)})
        except Exception as e:
            logging.error(e)
    tree = Tree(width='100%', height=600)
    tree.add("",
             DATA,
             tree_symbol_size=10,
             tree_label_text_size=14,
             tree_leaves_text_size=12,
             is_toolbox_show=False)
    return render_template('redis_status.html', tree=tree)
            "name": "defadd.py"
        }, {
            "children": [],
            "name": "definfo.py"
        }],
        "name":
        "function"
    }, {
        "children": [],
        "name": "__init__.py"
    }, {
        "children": [],
        "name": "_config.yml"
    }, {
        "children": [],
        "name": "LICENSE.txt"
    }, {
        "children": [],
        "name": "README.md"
    }, {
        "children": [],
        "name": "setup.py"
    }],
    "name":
    "Redfox"
}]

tree = Tree("树图文件目录示例", width=1200, height=800)
tree.add("", data, tree_collapse_interval=2, tree_layout="radial")
tree.render("Redfox1.0.1bc文件目录树.html")
Exemple #9
0
            {
                "children": [
                    {
                        "children": [
                            {
                                "children": [],
                                "name": "J"
                            },
                            {
                                "children": [],
                                "name": "K"
                            }
                        ],
                        "name": "G"
                    },
                    {
                        "children": [],
                        "name": "H"
                    }
                ],
                "name": "D"
            }
        ],
        "name": "A"
    }
]

tree = Tree("树图示例")
tree.add("", data)
tree.render()
Exemple #10
0
def redis_status(hostname=None, app_port=None, redis_master=None):
    try:
        db_redis = db_idc.redis_info
        db_server = db_idc.idc_servers
        BARS = []
        DATA = []
        tree = None
        if hostname and app_port:
            try:
                for info in ('used_memory', 'hit_rate', 'clients', 'ops'):
                    attrs = []
                    vals = []
                    yf = ''
                    for i in range(7):
                        update_date = datetime.datetime.now(
                        ) - datetime.timedelta(days=i)
                        update_date = update_date.strftime('%Y-%m-%d')
                        Key = 'op_redis_status_%s_%s_%s' % (hostname, app_port,
                                                            update_date)
                        if RC_CLUSTER.exists(Key):
                            infos = RC_CLUSTER.hgetall(Key)
                            attrs.append(update_date)
                            val = infos[info]
                            if 'G' in infos[info]:
                                yf = 'G'
                                val = infos[info].replace('G', '')
                            if 'M' in infos[info]:
                                yf = 'M'
                                val = infos[info].replace('M', '')
                            vals.append(val)
                    bar = Bar(info,
                              title_pos='center',
                              width='100%',
                              height='250px')
                    if info == 'used_memory':
                        bar.add("",
                                attrs,
                                vals,
                                mark_point=["max", "min"],
                                is_yaxislabel_align=True,
                                is_toolbox_show=False,
                                xaxis_interval=0,
                                legend_pos='100%',
                                yaxis_formatter=yf,
                                is_random=True,
                                xaxis_name_size=12,
                                legend_text_size=12)
                    elif info == 'hit_rate':
                        bar.add("",
                                attrs,
                                vals,
                                mark_point=["max", "min"],
                                is_yaxislabel_align=True,
                                is_toolbox_show=False,
                                xaxis_interval=0,
                                legend_pos='100%',
                                yaxis_formatter='%',
                                is_random=True,
                                xaxis_name_size=12,
                                legend_text_size=12)
                    else:
                        bar.add("",
                                attrs,
                                vals,
                                mark_point=["max", "min"],
                                is_yaxislabel_align=True,
                                is_toolbox_show=False,
                                xaxis_interval=0,
                                legend_pos='100%',
                                xaxis_name_size=12,
                                legend_text_size=12)
                    BARS.append(bar)
            except Exception as e:
                logging.error(e)
        if redis_master:
            try:
                KEY = 'op_redis_master_lists'
                redis_master = redis_master.split(':')
                server_id = db_server.query.with_entities(db_server.id).filter(
                    db_server.hostname == redis_master[0]).all()
                if server_id:
                    redis_master[0] = server_id[0][0]
                RC.lpush(KEY, redis_master)
                while True:
                    if RC.llen(KEY) > 0:
                        id, port = eval(RC.lpop(KEY))
                        vals = db_redis.query.with_entities(
                            db_redis.server_id, db_redis.port).filter(
                                and_(db_redis.Master_Host == id,
                                     db_redis.Master_Port == port)).all()
                        if vals:
                            key = 'op_redis_nexus_%s:%s' % (id, port)
                            RC.set(key, str(vals))
                            for val in vals:
                                RC.lpush(KEY, val)
                    else:
                        break
                id, port = redis_master
                hostname = RC_CLUSTER.hget('op_server_hostnames', id)
                if hostname:
                    name = hostname
                    DATA.append({
                        "children": [],
                        "name": '%s:%s' % (name, port)
                    })
                keys = []
                mkey = 'op_redis_nexus_%s:%s' % (id, port)
                keys.append(mkey)
                for key in keys:
                    name = key.replace('op_redis_nexus_', '').split(':')
                    hostname = RC_CLUSTER.hget('op_server_hostnames', name[0])
                    if hostname:
                        name[0] = hostname
                    name = ':'.join(name)
                    if RC.exists(key):
                        for val in eval(RC.get(key)):
                            id, port = val
                            key = 'op_redis_nexus_%s:%s' % (id, port)
                            if RC.exists(key):
                                keys.append(key)
                            hostname = RC_CLUSTER.hget('op_server_hostnames',
                                                       id)
                            if hostname:
                                id = hostname
                            for datas in DATA:
                                if datas['name'] == name:
                                    datas["children"].append({
                                        "children": [],
                                        "name":
                                        '%s:%s' % (id, port)
                                    })
                                else:
                                    for data in datas["children"]:
                                        if data['name'] == name:
                                            data["children"].append({
                                                "children": [],
                                                "name":
                                                '%s:%s' % (id, port)
                                            })
                                        else:
                                            for DAT in data["children"]:
                                                if DAT['name'] == name:
                                                    DAT["children"].append({
                                                        "children": [],
                                                        "name":
                                                        '%s:%s' % (id, port)
                                                    })
                                                else:
                                                    for dat in DAT["children"]:
                                                        if dat['name'] == name:
                                                            dat["children"].append(
                                                                {
                                                                    "children":
                                                                    [],
                                                                    "name":
                                                                    '%s:%s' %
                                                                    (id, port)
                                                                })
                                                        else:
                                                            for da in dat[
                                                                    "children"]:
                                                                if da['name'] == name:
                                                                    da["children"].append({
                                                                        "children":
                                                                        [],
                                                                        "name":
                                                                        '%s:%s'
                                                                        %
                                                                        (id,
                                                                         port)
                                                                    })
                                                                else:
                                                                    for dd in da[
                                                                            "children"]:
                                                                        if dd['name'] == name:
                                                                            dd["children"].append({"children": [],"name": '%s:%s' % (id, port)})
                                                                        else:
                                                                            for d in dd[
                                                                                    "children"]:
                                                                                if d['name'] == name:
                                                                                    d["children"].append({"children": [],"name": '%s:%s' % (id, port)})
                                                                                else:
                                                                                    for t in d[
                                                                                            "children"]:
                                                                                        if t['name'] == name:
                                                                                            t["children"].append({"children": [],"name": '%s:%s' % (id, port)})
                tree = Tree(width='100%', height=600)
                tree.add("",
                         DATA,
                         tree_symbol_size=10,
                         tree_label_text_size=14,
                         tree_leaves_text_size=12,
                         is_toolbox_show=False)
            except Exception as e:
                logging.error(e)
        return render_template('redis_status.html',
                               BARS=BARS,
                               hostname=hostname,
                               app_port=app_port,
                               tree=tree)
    except Exception as e:
        logging.error(e)
Exemple #11
0
                        "name": "U",
                        "children": []
                    }
                ]
            },
            {
                "name": "Q",
                "children": [
                    {
                        "name": "OI",
                        "children": []
                    }
                ]
            }
        ]
    }
]



'''sample 1 —— draw tree chart.(绘制树图)'''
# tree = Tree("树图示例")
# tree.add("", data)
# tree.render()


'''sample 2 —— draw tree chart with tree_collapse_interval.(调节节点间隔绘制树图)'''
tree = Tree("treechart")
tree.add("", data, tree_collapse_interval=2, tree_orient="TB", tree_layout="radial")
tree.render()