创建依赖关系层的模块
layerz的Python项目详细描述
用于创建依赖关系层的简单模块。
安装
使用PIP!:
$ pip install layerz
用法
fromlayerzimportLayersdep1=type("dep1",(object,),{"dependencies":lambdas,all_deps:[]})()dep2=type("dep2",(object,),{"dependencies":lambdas,all_deps:["dep3"]})()dep3=type("dep3",(object,),{"dependencies":lambdas,all_deps:["dep1"]})()dep4=type("dep4",(object,),{"dependencies":lambdas,all_deps:["dep3"]})()dep5=type("dep1",(object,),{"dependencies":lambdas,all_deps:["dep4","dep2"]})()layers=Layers({"dep1":dep1,"dep2":dep2,"dep3":dep3,"dep4":dep4,"dep5":dep5})layers.add_to_layers("dep5")forlayerinlayers.layered:# might get something like# [("dep5", dep5)]# [("dep4", dep4), ("dep2", dep2)]# [("dep3", dep3)]# [("dep1", dep1)]
当我们创建层时,它将对所有依赖项进行深度优先添加 并且只将dep添加到在所有依赖项之后发生的层。
循环依赖性将受到投诉。
测试
本地安装:
$ pip install -e . $ pip install -e ".[tests]"
然后使用帮助脚本:
$ ./test.sh