A new solution to tree
Project description
Gotree Package
New solution to tree! gotree.py是一个使用围棋树方法解决树的存取问题的全新解决方法,示例代码如下:
机构:79软件
作者:Newman
from gotree import *
#=============================MAIN BODY=============================
数据库连接参数,可以定义多个,比如db_connect_parm,conn_params2,用于连接多个数据库,在类实例化时指定
db_connect_parm = {'host': 'localhost', 'port': 3306, 'user': 'newman', 'passwd': '123456', 'db': 'gotree', 'charset': 'utf8'}
#Mysql Table name to store gotree,可以根据需要自行修改 tablename='gotree_tb01'
#------------------检查根节点是否存在--------------------------------
root_exist=check_root_exist(db_connect_parm,tablename) print(root_exist)
''' #------------------插入根节点--------------------------------
ndname='A' nddata='ROOT NODE A' fndname='' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=True)
#------------------插入普通节点1--------------------------------
ndname='B1' nddata='NODE B1,第二层,父节点是根节点A' fndname='A' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=False)
#------------------插入普通节点2--------------------------------
ndname='B2' nddata='NODE B2,第二层,父节点是根节点A,第二个子节点' fndname='A' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=False)
#------------------插入普通节点3--------------------------------
ndname='B3' nddata='NODE B3,第二层,父节点是根节点A,第三个子节点' fndname='A' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=False)
#------------------插入普通节点4到6--------------------------------
ndname='B4' nddata='NODE B4,第二层,父节点是根节点A,第4个子节点' fndname='A' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=False)
ndname='B5' nddata='NODE B5,第二层,父节点是根节点A,第5个子节点' fndname='A' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=False)
ndname='B6' nddata='NODE B6,第二层,父节点是根节点A,第6个子节点' fndname='A' build_one_node(db_connect_parm,tablename,ndname,nddata,fndname,root=False)
#=====================从Excel文件生成围棋树=========================
filename='D:\VipStock\Test\gotree_data\gotree1.xlsx' #filename='D:\VipStock\Test\gotree_data\gotreesun.xlsx' headers=1 excel2tree(db_connect_parm,tablename,filename,headers=1)
#=====================从json文件生成围棋树=========================
filename='D:\VipStock\Test\gotree_data\gotree1.json' json2tree(db_connect_parm,tablename,filename)
#=====================从CSV文件生成围棋树=========================
filename='D:\VipStock\Test\gotree_data\gotree1.csv' csv2tree(db_connect_parm,tablename,filename)
#=====================从围棋树下载到Excel=========================
filename='D:\VipStock\Test\gotree_data\gotreeb1.xlsx' #filename='D:\VipStock\Test\gotree_data\gotreebsun.xlsx' tree2excel(db_connect_parm,tablename,filename)
#=====================从围棋树下载到csv=========================
#filename='D:\VipStock\Test\gotree_data\gotreeb1.csv' filename='D:\VipStock\Test\gotree_data\gotreeb1-157077条记录.csv' tree2csv(db_connect_parm,tablename,filename)
#=====================从围棋树下载到json=========================
#filename='D:\VipStock\Test\gotree_data\gotreeb1.json' filename='D:\VipStock\Test\gotree_data\gotreeb1-157077条记录.json' tree2json(db_connect_parm,tablename,filename)
#======================修改节点数据========================
ndname='B3' nddata='修改过的记录!This is Node B2,Father-- is Node A,in the second level!好!很好!' rowcount=updnamedata(db_connect_parm,tablename,ndname,nddata) print('修改的记录个数为:',rowcount)
#======================获取节点数据========================
ndname='B3' result=getnamedata(db_connect_parm,tablename,ndname) print('节点信息为:',result)
#======================获取树的高度========================
result=getheight(db_connect_parm,tablename,) print('树的高度为:',result)
#======================获取树的节点总数====================== count=getnodecount(db_connect_parm,tablename,) print('节点总数为:',count)
#======================树的逆生长,插入新root节点======================== newndname='new1 root' newnddata='This is new1 root,new1 root!' inversegrowth(db_connect_parm,tablename,newndname,newnddata)
#======================获取根节点的第n代子孙个数及节点名字======================== n=5 result=getrootdescendant(db_connect_parm,tablename,n) print('后代个数和名字为:',result) #======================获取普通节点的第n代子孙个数及节点名字======================== n=2 #n=1 #ndname='B2' #ndname='Bx2' #ndname='A' ndname='Me241Pc759Rh730Gn559Yg363' result=getndnamedescendant(db_connect_parm,tablename,ndname,n) print('后代个数和名字为:',result)
#======================获取节点的儿女个数和名字====================== #ndname='B1' ndname='Eu604Px569Co722Kn632Be120' lst=getndnamechildren(db_conn_parm,tablename,ndname) print(lst)
#======================获取节点的父节点个数和名字====================== #ndname='B1' ndname='Av455Ne781Wn788Hw347Wd274' lst=getndnameparent(db_connect_parm,tablename,ndname) print(lst)
#======================获取节点的第n代祖先节点个数和名字====================== #ndname='C12' ndname='Av455Ne781Wn788Hw347Wd274' n=2 lst=getndnameancestors(db_connect_parm,tablename,ndname,n) print(lst)
#======================显示整颗围棋树的树形图,树形展示====================== #graphtree(db_connect_parm,tablename)
#======================显示围棋树的子树树形图,树形展示====================== #ndname='孙权' #ndname='BZ1' #ndname='B1' #ndname='Av455Ne781Wn788Hw347Wd274' #文件太大,超过2048K,报错 ndname='Me241Pc759Rh730Gn559Yg363' graphsubtree(db_connect_parm,tablename,ndname)
#ndname='孙和' #叶节点,最底层 #graphsubtree(db_connect_parm,tablename,ndname)
#ndname='孙策' #叶节点,不是最底层 #graphsubtree(db_connect_parm,tablename,ndname)
#ndname='B1' #graphsubtree(db_connect_parm,tablename,ndname)
#ndname='C68' #graphsubtree(db_connect_parm,tablename,ndname)
#ndname='C67' #graphsubtree(db_connect_parm,tablename,ndname)
ndname='Zz32961UZz3265' graphsubtree(db_connect_parm,tablename,ndname)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gotree-1.0.3.tar.gz.
File metadata
- Download URL: gotree-1.0.3.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0011bc91442d7d109bda828f66bf24dbe58fb31582deda1dbacfa218b0a12394
|
|
| MD5 |
0bfc92b5d04e17204cc56e83d15a2e0d
|
|
| BLAKE2b-256 |
377ba475e0f87bb0d7da6505767c573cbc2d45e65638efab86987a205f479601
|
File details
Details for the file gotree-1.0.3-py3.6.egg.
File metadata
- Download URL: gotree-1.0.3-py3.6.egg
- Upload date:
- Size: 16.8 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbde50de06c06150a91dc3b6f490859d56fc0537d79803cd0c5cd24d8f89f902
|
|
| MD5 |
4a1eeab41eaaa2a6d2127b5fed183a5d
|
|
| BLAKE2b-256 |
bd358ca0bf8bfa56e0aafe0bd2dfd8a229509cd568c322d7595fb3fa3742cbd6
|
File details
Details for the file gotree-1.0.3-py3-none-any.whl.
File metadata
- Download URL: gotree-1.0.3-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fbcb10ebd18710e0862bb579969483c8f6e4128743aba4cee9a31959e7e6336
|
|
| MD5 |
1834d9c1a51b4e286bfd287efc8817bd
|
|
| BLAKE2b-256 |
08042a25b9d3beccf756656c5e1b42523c6af5c35edbe23d11e9c2d3b7c03f44
|