buildz 0.6.19__tar.gz → 0.6.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {buildz-0.6.19/buildz.egg-info → buildz-0.6.21}/PKG-INFO +7 -2
- {buildz-0.6.19 → buildz-0.6.21}/README.md +6 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/cache.py +59 -9
- buildz-0.6.21/buildz/auto/dbs.py +24 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/deal.py +4 -0
- buildz-0.6.21/buildz/auto/deal_list.py +32 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/deal_type.py +2 -1
- buildz-0.6.21/buildz/auto/factory.py +31 -0
- buildz-0.6.21/buildz/auto/init.py +13 -0
- buildz-0.6.21/buildz/auto/log.py +22 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/request.py +6 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/test/cache/cache.js +10 -10
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/test/config/config.js +4 -3
- buildz-0.6.19/buildz/auto/test/data/test.js → buildz-0.6.21/buildz/auto/test/data/fp.js +3 -0
- buildz-0.6.21/buildz/auto/test/data/test.js +31 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/test/test.py +2 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/verify.py +0 -1
- buildz-0.6.21/buildz/db/dv/__init__.py +14 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/dv/clickhousez.py +3 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/dv/mysqlz.py +3 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/dv/oraclez.py +3 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/runz.py +3 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc/base.py +4 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc/conf.py +1 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc/confs.py +2 -1
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/obj.py +25 -9
- buildz-0.6.21/buildz/tools.py +4 -0
- {buildz-0.6.19/buildz/auto → buildz-0.6.21/buildz/tz}/log.py +20 -20
- buildz-0.6.21/buildz/tz/time/__init__.py +1 -0
- buildz-0.6.21/buildz/tz/time/timez.py +24 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/write.py +1 -1
- {buildz-0.6.19 → buildz-0.6.21/buildz.egg-info}/PKG-INFO +7 -2
- {buildz-0.6.19 → buildz-0.6.21}/buildz.egg-info/SOURCES.txt +7 -0
- {buildz-0.6.19 → buildz-0.6.21}/setup.py +1 -1
- buildz-0.6.19/buildz/auto/factory.py +0 -28
- buildz-0.6.19/buildz/auto/init.py +0 -13
- buildz-0.6.19/buildz/tools.py +0 -3
- {buildz-0.6.19 → buildz-0.6.21}/LICENSE +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/MANIFEST.in +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/__main__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/argx.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/config.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/defs.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/run.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/save.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/test/data/item1.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/auto/test/data/item2.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/cmd.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/__main__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/dv/basez.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/dv/structz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/install.txt +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/db/run.conf +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/test.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/fz/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/fz/fio.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/html/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/html/test/test.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/html/xml.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/init.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/pyz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/__init__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/code.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/file.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/test.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/mapz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/read.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/readz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/stack.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.19 → buildz-0.6.21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.21
|
4
4
|
Summary: 配置读写(基于json格式进行简化)、ioc、以及其他工具代码。a json-base file format's read and write code by python, and codes to read and product object from configure file in such format(ioc), and other tool codes
|
5
5
|
Home-page: https://github.com/buildCodeZ/buildz
|
6
6
|
Author: Zzz
|
@@ -22,6 +22,9 @@ License-File: LICENSE
|
|
22
22
|
buildz.tz: 加些工具,目前只有myerse diff字符串比较算法
|
23
23
|
buildz.demo: 使用参考,运行"python -m buildz"会用这个模块
|
24
24
|
buildz.db: sql集成工具,自用,里面import了其他sql库,使用运行"python -m buildz.db 配置文件路径"
|
25
|
+
buildz.base: 封装了一个基础类,继承它可以少写一些代码
|
26
|
+
buildz.html: xml(html)内容读取和解析
|
27
|
+
buildz.auto: 自动化操作(主要是做自动化测试方便些,如果不怕写一堆配置文件的话)
|
25
28
|
代码关系:
|
26
29
|
buildz.xf, buildz.pyz, buildz.argx, buildz.fz, buildz.tz都是独立的模块
|
27
30
|
buildz.ioc需要buildz.xf和buildz.pyz
|
@@ -31,6 +34,8 @@ License-File: LICENSE
|
|
31
34
|
运行python -m buildz查看帮助
|
32
35
|
|
33
36
|
持续更新中。。。
|
37
|
+
2024/10/08:
|
38
|
+
增强auto配置功能,在auto增加数据库使用的封装,后续考虑出文档。。。如果有时间
|
34
39
|
2024/09/25:
|
35
40
|
修复bug,增强html的搜索功能,增强auto配置功能
|
36
41
|
auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
|
@@ -43,7 +48,7 @@ ioc:
|
|
43
48
|
加修饰器
|
44
49
|
加配置refs
|
45
50
|
|
46
|
-
PS: 对比了下json.loads(修改了下json的scanner.py,让它在纯python下运行,不然json.loads会更快)和目前的xf.loads(buildz.xf.readz.loads)的速度,xf.loads比json.loads慢7倍,可能是读字符串更频繁,方法调用更多(为了代码更结构化和容易修改),其实有一版更慢(buildz.xf.read.loads,废弃代码,后面看情况删掉),慢100
|
51
|
+
PS: 对比了下json.loads(修改了下json的scanner.py,让它在纯python下运行,不然json.loads会更快)和目前的xf.loads(buildz.xf.readz.loads)的速度,xf.loads比json.loads慢7倍,可能是读字符串更频繁,方法调用更多(为了代码更结构化和容易修改),其实有一版更慢(buildz.xf.read.loads,废弃代码,后面看情况删掉),慢100倍,因为只考虑结构化,没考虑列表增减开销(获得的经验教训是别直接用python的列表list当堆栈做append和pop,特别慢!)
|
47
52
|
|
48
53
|
1, a profile file format base on json, make it easy to write profile file, module is in buildz.xf
|
49
54
|
2, a ioc profile file read function base on xf format, module is in buildz.ioc
|
@@ -9,6 +9,9 @@
|
|
9
9
|
buildz.tz: 加些工具,目前只有myerse diff字符串比较算法
|
10
10
|
buildz.demo: 使用参考,运行"python -m buildz"会用这个模块
|
11
11
|
buildz.db: sql集成工具,自用,里面import了其他sql库,使用运行"python -m buildz.db 配置文件路径"
|
12
|
+
buildz.base: 封装了一个基础类,继承它可以少写一些代码
|
13
|
+
buildz.html: xml(html)内容读取和解析
|
14
|
+
buildz.auto: 自动化操作(主要是做自动化测试方便些,如果不怕写一堆配置文件的话)
|
12
15
|
代码关系:
|
13
16
|
buildz.xf, buildz.pyz, buildz.argx, buildz.fz, buildz.tz都是独立的模块
|
14
17
|
buildz.ioc需要buildz.xf和buildz.pyz
|
@@ -18,6 +21,8 @@
|
|
18
21
|
运行python -m buildz查看帮助
|
19
22
|
|
20
23
|
持续更新中。。。
|
24
|
+
2024/10/08:
|
25
|
+
增强auto配置功能,在auto增加数据库使用的封装,后续考虑出文档。。。如果有时间
|
21
26
|
2024/09/25:
|
22
27
|
修复bug,增强html的搜索功能,增强auto配置功能
|
23
28
|
auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
|
@@ -30,7 +35,7 @@ ioc:
|
|
30
35
|
加修饰器
|
31
36
|
加配置refs
|
32
37
|
|
33
|
-
PS: 对比了下json.loads(修改了下json的scanner.py,让它在纯python下运行,不然json.loads会更快)和目前的xf.loads(buildz.xf.readz.loads)的速度,xf.loads比json.loads慢7倍,可能是读字符串更频繁,方法调用更多(为了代码更结构化和容易修改),其实有一版更慢(buildz.xf.read.loads,废弃代码,后面看情况删掉),慢100
|
38
|
+
PS: 对比了下json.loads(修改了下json的scanner.py,让它在纯python下运行,不然json.loads会更快)和目前的xf.loads(buildz.xf.readz.loads)的速度,xf.loads比json.loads慢7倍,可能是读字符串更频繁,方法调用更多(为了代码更结构化和容易修改),其实有一版更慢(buildz.xf.read.loads,废弃代码,后面看情况删掉),慢100倍,因为只考虑结构化,没考虑列表增减开销(获得的经验教训是别直接用python的列表list当堆栈做append和pop,特别慢!)
|
34
39
|
|
35
40
|
1, a profile file format base on json, make it easy to write profile file, module is in buildz.xf
|
36
41
|
2, a ioc profile file read function base on xf format, module is in buildz.ioc
|
@@ -49,13 +49,14 @@ pass
|
|
49
49
|
|
50
50
|
|
51
51
|
@wrap.obj(id="cache.save")
|
52
|
-
@wrap.obj_args("ref, cache", "ref, log")
|
52
|
+
@wrap.obj_args("ref, cache.file", "ref, log")
|
53
53
|
class Save(Base):
|
54
|
-
def init(self, cache, log):
|
54
|
+
def init(self, cache, log, fkey = "cache.save"):
|
55
|
+
self.fkey = fkey
|
55
56
|
self.cache = cache
|
56
57
|
self.log = log
|
57
58
|
def call(self, maps, fp):
|
58
|
-
fp = xf.get(maps,
|
59
|
+
fp = xf.get(maps, self.fkey, None)
|
59
60
|
if fp is None:
|
60
61
|
self.log.warn(f"cache not save cause 'cache.save' is None")
|
61
62
|
return
|
@@ -66,7 +67,7 @@ class Save(Base):
|
|
66
67
|
return True
|
67
68
|
|
68
69
|
pass
|
69
|
-
@wrap.obj(id="cache")
|
70
|
+
@wrap.obj(id="cache.file")
|
70
71
|
@wrap.obj_args("ref, log", "env, cache.rfp.current.first, false")
|
71
72
|
class Cache(Base):
|
72
73
|
def get(self, key):
|
@@ -76,7 +77,8 @@ class Cache(Base):
|
|
76
77
|
xf.sets(self.data, key.split("."), val)
|
77
78
|
def remove(self, key):
|
78
79
|
xf.removes(self.data, key.split("."))
|
79
|
-
def init(self, log, current_first=False):
|
80
|
+
def init(self, log, current_first=False, fkey = "cache"):
|
81
|
+
self.fkey = fkey
|
80
82
|
self.current_first = current_first
|
81
83
|
self.log = log
|
82
84
|
self.data = {}
|
@@ -113,12 +115,60 @@ class Cache(Base):
|
|
113
115
|
return _fp
|
114
116
|
return fp
|
115
117
|
def call(self, maps, fp):
|
116
|
-
fp = xf.
|
118
|
+
fp = xf.get(maps, self.fkey, "cache.js")
|
119
|
+
if type(fp)!=list:
|
120
|
+
fp = [fp]
|
121
|
+
fps=fp
|
117
122
|
data = {}
|
118
|
-
|
119
|
-
self.
|
120
|
-
|
123
|
+
for fp in fps:
|
124
|
+
fp = self.rfp(fp)
|
125
|
+
if os.path.isfile(fp):
|
126
|
+
self.log.info(f"load cache from {fp}")
|
127
|
+
xdata = xf.flush_maps(xf.loadf(fp),visit_list=True)
|
128
|
+
xf.fill(xdata, data, replace=1)
|
121
129
|
xf.fill(data, self.data, replace=0)
|
122
130
|
return True
|
123
131
|
|
124
132
|
pass
|
133
|
+
|
134
|
+
@wrap.obj(id="cache.mem")
|
135
|
+
@wrap.obj_args("ref, log")
|
136
|
+
class Mem(Cache):
|
137
|
+
def init(self, log, current_first=False, fkey = "mem"):
|
138
|
+
super().init(log)
|
139
|
+
|
140
|
+
pass
|
141
|
+
@wrap.obj(id="cache")
|
142
|
+
@wrap.obj_args("ref, cache.file", "ref, cache.mem")
|
143
|
+
class Caches(Base):
|
144
|
+
def init(self, cache, mem):
|
145
|
+
self.cache = cache
|
146
|
+
self.mem = mem
|
147
|
+
self.caches = [cache, mem]
|
148
|
+
self.set = cache.set
|
149
|
+
self.remove = cache.remove
|
150
|
+
self.call=cache.call
|
151
|
+
self.rfp = cache.rfp
|
152
|
+
self.get_current = cache.get_current
|
153
|
+
self.add_current = cache.add_current
|
154
|
+
self.set_current = cache.set_current
|
155
|
+
def get_file(self, key):
|
156
|
+
return self.cache.get(key)
|
157
|
+
def get_mem(self, key):
|
158
|
+
return self.mem.get(key)
|
159
|
+
def set_file(self, key, val):
|
160
|
+
self.cache.set(key,val)
|
161
|
+
def set_mem(self, key, val):
|
162
|
+
self.mem.set(key, val)
|
163
|
+
def remove_file(self, key):
|
164
|
+
self.cache.remove(key)
|
165
|
+
def remove_mem(self, key):
|
166
|
+
self.mem.remove(key)
|
167
|
+
def get(self, key):
|
168
|
+
for cache in self.caches:
|
169
|
+
v = cache.get(key)
|
170
|
+
if v is not None:
|
171
|
+
return v
|
172
|
+
return None
|
173
|
+
|
174
|
+
pass
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#
|
2
|
+
from ..tools import *
|
3
|
+
from buildz.ioc import wrap
|
4
|
+
import os
|
5
|
+
from buildz.db.dv import build
|
6
|
+
@wrap.obj(id="dbs")
|
7
|
+
@wrap.obj_args("ref, cache", "ref, log")
|
8
|
+
class Dbs(Base):
|
9
|
+
def init(self, cache, log):
|
10
|
+
self.cache = cache
|
11
|
+
self.log = log
|
12
|
+
self.dbs = {}
|
13
|
+
def call(self, maps, fp):
|
14
|
+
confs = xf.g(maps, dbs={})
|
15
|
+
for key,conf in confs.items():
|
16
|
+
url,user,pwd,dv = xf.g(conf, url=None, user=None, pwd=None, device=key)
|
17
|
+
dv = build(dv, [url, user, pwd], val)
|
18
|
+
self.dbs[key] = dv
|
19
|
+
self.cache.set_mem("dbs", self.dbs)
|
20
|
+
return True
|
21
|
+
|
22
|
+
pass
|
23
|
+
|
24
|
+
|
@@ -9,7 +9,10 @@ from ..ioc import wrap
|
|
9
9
|
class List(Base):
|
10
10
|
def init(self, deal, mg):
|
11
11
|
self.deal = deal
|
12
|
+
self.curr_deal = deal
|
12
13
|
self.mg = mg
|
14
|
+
def curr(self):
|
15
|
+
return self.curr_deal
|
13
16
|
def call(self, maps, fp):
|
14
17
|
datas = xf.g(maps, datas = [])
|
15
18
|
sdeal = xf.g(maps, deal = None)
|
@@ -19,6 +22,7 @@ class List(Base):
|
|
19
22
|
deal = deal_obj
|
20
23
|
elif sdeal is not None:
|
21
24
|
deal = self.mg.get(sdeal)
|
25
|
+
self.curr_deal = deal
|
22
26
|
for data in datas:
|
23
27
|
if not deal(data):
|
24
28
|
return False
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#
|
2
|
+
from ..tools import *
|
3
|
+
from buildz.ioc import wrap
|
4
|
+
import os
|
5
|
+
@wrap.obj(id="deal.list")
|
6
|
+
@wrap.obj_args("ref, cache", "ref, log", "ref, cache.modify", "ref, list")
|
7
|
+
class List(Base):
|
8
|
+
def init(self, cache, log, upd, lst):
|
9
|
+
self.cache = cache
|
10
|
+
self.log = log
|
11
|
+
self.upd = upd
|
12
|
+
self.lst = lst
|
13
|
+
def call(self, data, fc):
|
14
|
+
data = self.upd(data)
|
15
|
+
fp = xf.g(data, file = None)
|
16
|
+
if fp is not None:
|
17
|
+
fp = self.cache.rfp(fp)
|
18
|
+
datas = xf.g(data, datas=[])
|
19
|
+
if fp is not None and os.path.isfile(fp):
|
20
|
+
datas = xf.loadf(fp)
|
21
|
+
if type(datas)==dict:
|
22
|
+
datas = xf.g(datas, datas=[])
|
23
|
+
deal = self.lst.curr()
|
24
|
+
print(f"List.datas: {xf.dumps(datas,format=1,deep=1)}")
|
25
|
+
for data in datas:
|
26
|
+
if not deal(data):
|
27
|
+
return False
|
28
|
+
return True
|
29
|
+
|
30
|
+
pass
|
31
|
+
|
32
|
+
|
@@ -20,6 +20,7 @@ pass
|
|
20
20
|
|
21
21
|
@wrap.obj(id = "def.deal.type")
|
22
22
|
@wrap.obj_args("ioc, confs")
|
23
|
+
@wrap.obj_set(cache="ref, cache")
|
23
24
|
class DefDeal(Base):
|
24
25
|
def init(self, mg):
|
25
26
|
self.mg = mg
|
@@ -30,7 +31,7 @@ class DefDeal(Base):
|
|
30
31
|
data = xf.g(conf, types={})
|
31
32
|
rst = {}
|
32
33
|
for _type, calls in data.items():
|
33
|
-
rst[_type] = factory(calls)
|
34
|
+
rst[_type] = factory(calls, True)
|
34
35
|
obj = DealType(rst, self.mg.get("cache"))
|
35
36
|
maps['deal_obj'] = obj
|
36
37
|
return True
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
|
3
|
+
from .. import xf
|
4
|
+
from .. import ioc
|
5
|
+
from ..base import Base
|
6
|
+
from ..ioc import wrap
|
7
|
+
|
8
|
+
class DeepFc(Base):
|
9
|
+
def init(self, fcs, default = None):
|
10
|
+
self.default = default
|
11
|
+
self.fc = None
|
12
|
+
self.next=None
|
13
|
+
if len(fcs)>0:
|
14
|
+
self.fc = fcs[0]
|
15
|
+
self.next = DeepFc(fcs[1:], default)
|
16
|
+
def call(self, data):
|
17
|
+
if self.fc is None:
|
18
|
+
return self.default
|
19
|
+
return self.fc(data, self.next)
|
20
|
+
|
21
|
+
pass
|
22
|
+
@wrap.obj(id = "buildz.auto.deal.fill")
|
23
|
+
@wrap.obj_args("ioc, confs")
|
24
|
+
class Fill(Base):
|
25
|
+
def init(self, mg):
|
26
|
+
self.mg = mg
|
27
|
+
def call(self, orders, default=None):
|
28
|
+
fcs = [self.mg.get(id) for id in orders]
|
29
|
+
return DeepFc(fcs,default)
|
30
|
+
|
31
|
+
pass
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
|
3
|
+
|
4
|
+
from .. import xf
|
5
|
+
from .. import ioc
|
6
|
+
from ..base import Base
|
7
|
+
from ..ioc import wrap
|
8
|
+
from ..tools import *
|
9
|
+
import time, sys
|
10
|
+
from ..tz.log import FpLog
|
11
|
+
@wrap.obj(id="log")
|
12
|
+
class AutoLog(FpLog):
|
13
|
+
def call(self, maps, fp):
|
14
|
+
fp = xf.g(maps, log = None)
|
15
|
+
self.fp = fp
|
16
|
+
shows = xf.get(maps, "log.shows")
|
17
|
+
if shows is None:
|
18
|
+
shows = ["info", "warn", "error"]
|
19
|
+
self.shows = shows
|
20
|
+
return True
|
21
|
+
|
22
|
+
pass
|
@@ -58,10 +58,13 @@ class Request(Base):
|
|
58
58
|
xf.s(data, result_code = rp.status_code)
|
59
59
|
if self.debug:
|
60
60
|
self.log.debug(f"request url '{url}' return code: {rp.status_code}")
|
61
|
+
show_obj = None
|
61
62
|
try:
|
63
|
+
show_obj = rp.content
|
62
64
|
xf.s(data, result_content=rp.content)
|
63
65
|
debug_ct = rp.content
|
64
66
|
s = xf.decode(rp.content, "utf-8")
|
67
|
+
show_obj = s
|
65
68
|
if self.debug:
|
66
69
|
self.log.debug(f"request url '{url}' return msg:{s}")
|
67
70
|
xf.s(data, result_text=s)
|
@@ -69,10 +72,13 @@ class Request(Base):
|
|
69
72
|
self.log.warn(f"exp in deal response on '{url}': {exp}")
|
70
73
|
try:
|
71
74
|
obj = json.loads(s)
|
75
|
+
show_obj = xf.dumps(obj,format=1,deepp=1)
|
72
76
|
xf.s(data, result=obj)
|
73
77
|
except Exception as exp:
|
74
78
|
#self.log.warn(f"exp in deal response on '{url}': {exp}")
|
75
79
|
pass
|
80
|
+
if self.debug:
|
81
|
+
self.log.debug(f"request '{url}' response: {show_obj}")
|
76
82
|
try:
|
77
83
|
xf.s(data, result_cookies=dict(rp.cookies))
|
78
84
|
except Exception as exp:
|
@@ -1,11 +1,11 @@
|
|
1
|
-
{
|
2
|
-
request: {
|
3
|
-
debug: false
|
4
|
-
},
|
5
|
-
host: www.baidu.com,
|
6
|
-
test: {
|
7
|
-
url: tmpurl,
|
8
|
-
val: 1,
|
9
|
-
code: 1.99
|
10
|
-
},
|
1
|
+
{
|
2
|
+
request: {
|
3
|
+
debug: false
|
4
|
+
},
|
5
|
+
host: www.baidu.com,
|
6
|
+
test: {
|
7
|
+
url: tmpurl,
|
8
|
+
val: 1,
|
9
|
+
code: 1.99
|
10
|
+
},
|
11
11
|
}
|
@@ -1,11 +1,12 @@
|
|
1
|
-
calls: [log, cache, def.deal.type, list, cache.save]
|
2
|
-
cache: cache/cache.js
|
3
|
-
cache.save: cache/
|
1
|
+
calls: [log, cache, dbs, def.deal.type, list, cache.save]
|
2
|
+
cache: [cache/cache.js,cache/save.js]
|
3
|
+
cache.save: cache/save.js
|
4
4
|
log: log/%Y%m%d_log.txt
|
5
5
|
log.shows: [info, warn, debug, error]
|
6
6
|
def.deal: {
|
7
7
|
types: {
|
8
8
|
http.get: [defs, request, verify, save]
|
9
9
|
get: [defs, request.get, verify, save]
|
10
|
+
list: [defs, deal.list]
|
10
11
|
}
|
11
12
|
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
configs: config/config.js
|
2
|
+
datas: [
|
3
|
+
//写一个配置
|
4
|
+
{
|
5
|
+
note: test
|
6
|
+
url: test
|
7
|
+
type: http.get
|
8
|
+
data: {
|
9
|
+
url: "#{test.url}"
|
10
|
+
}
|
11
|
+
save: {
|
12
|
+
test.url: data.url
|
13
|
+
}
|
14
|
+
result: {
|
15
|
+
code: 1.99
|
16
|
+
}
|
17
|
+
verify: [
|
18
|
+
"result.code, [>, 1]"
|
19
|
+
]
|
20
|
+
save: {
|
21
|
+
result.code: result.code
|
22
|
+
}
|
23
|
+
}
|
24
|
+
// 或者配置所在的文件
|
25
|
+
item1.js
|
26
|
+
item2.js
|
27
|
+
{
|
28
|
+
type: list
|
29
|
+
file: fp.js
|
30
|
+
}
|
31
|
+
]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#
|
2
|
+
|
3
|
+
def build(dv,*a,**b):
|
4
|
+
if dv == 'mysql':
|
5
|
+
from .mysqlz import build as _build
|
6
|
+
elif dv == 'oracle':
|
7
|
+
from .oraclez import build as _build
|
8
|
+
elif dv == 'clickhouse':
|
9
|
+
from .clickhousez import build as _build
|
10
|
+
return _build(*a, **b)
|
11
|
+
|
12
|
+
pass
|
13
|
+
|
14
|
+
|
@@ -15,6 +15,7 @@ def test(fp):
|
|
15
15
|
obj = xf.loads(xf.fread(fp))
|
16
16
|
dv = obj['dv']
|
17
17
|
if __name__ == "__main__":
|
18
|
+
from db.basez import CMD
|
18
19
|
if dv == 'mysql':
|
19
20
|
from dv.mysqlz import build
|
20
21
|
elif dv == 'oracle':
|
@@ -22,6 +23,7 @@ def test(fp):
|
|
22
23
|
elif dv == 'clickhouse':
|
23
24
|
from dv.clickhousez import build
|
24
25
|
else:
|
26
|
+
from .db.basez import CMD
|
25
27
|
if dv == 'mysql':
|
26
28
|
from .dv.mysqlz import build
|
27
29
|
elif dv == 'oracle':
|
@@ -47,7 +49,7 @@ def test(fp):
|
|
47
49
|
sqls = "\n".join(sqls)
|
48
50
|
sqls = sqls.split(";")
|
49
51
|
print(f"[TESTZ] sqls:{sqls}")
|
50
|
-
cmd = build([db_url, user, pwd], obj)
|
52
|
+
cmd = CMD(build([db_url, user, pwd], obj))
|
51
53
|
cmd.dv.begin()
|
52
54
|
print("[TESTZ] A")
|
53
55
|
with open(out, 'wb') as f:
|
@@ -1,6 +1,7 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from buildz import xf, pyz
|
3
3
|
from buildz.xf import g as xg
|
4
|
+
from buildz.base import Base as BzBase
|
4
5
|
import json
|
5
6
|
import builtins
|
6
7
|
typez = builtins.type
|
@@ -11,7 +12,7 @@ class IOCError(Exception):
|
|
11
12
|
pass
|
12
13
|
class IdNotFoundError(IOCError):
|
13
14
|
pass
|
14
|
-
class Base:
|
15
|
+
class Base(BzBase):
|
15
16
|
def update_maps(self, maps, src, replace=1):
|
16
17
|
xf.deep_update(maps, src, replace)
|
17
18
|
def __init__(self, *args, **maps):
|
@@ -26,6 +27,8 @@ class Base:
|
|
26
27
|
|
27
28
|
pass
|
28
29
|
class EncapeData(Base):
|
30
|
+
def str(self):
|
31
|
+
return f"EncapeData(data={self.data}, type = {self.type})"
|
29
32
|
"""
|
30
33
|
包含data id对应的配置,配置文件id,配置文件对象
|
31
34
|
[object.test, call, ]
|
@@ -56,7 +56,7 @@ class Conf(Base):
|
|
56
56
|
return id[0]
|
57
57
|
return id
|
58
58
|
def map(self, arr, fc_key):
|
59
|
-
return {fc_key(obj): obj for obj in arr}
|
59
|
+
return {fc_key(obj): obj for obj in arr if fc_key(obj) is not None}
|
60
60
|
def __str__(self):
|
61
61
|
return f"conf<id={self.namespace}, _id={self.id}>"
|
62
62
|
def __repr__(self):
|
@@ -307,7 +307,8 @@ class Confs(Base):
|
|
307
307
|
return obj[self.deal_index_type]
|
308
308
|
def get_data_id(self, obj):
|
309
309
|
if type(obj)==dict:
|
310
|
-
return obj
|
310
|
+
return xf.get(obj, self.data_key_id, None)
|
311
|
+
#return obj[self.data_key_id]
|
311
312
|
obj = obj[self.data_index_id[0]]
|
312
313
|
if type(obj) in [list, tuple]:
|
313
314
|
obj = obj[self.data_index_id[1]]
|
@@ -214,7 +214,26 @@ def update_list(arr):
|
|
214
214
|
return rst
|
215
215
|
|
216
216
|
pass
|
217
|
+
ioc_conf_key = "_buildz_ioc_conf"
|
218
|
+
class IOCConf(Basez):
|
219
|
+
def init(self, key = "_buildz_ioc_conf", ckey = "_buildz_ioc_conf_cls"):
|
220
|
+
self.key = key
|
221
|
+
self.ckey = ckey
|
222
|
+
def get(self, cls, default):
|
223
|
+
if not hasattr(cls, self.ckey):
|
224
|
+
return default
|
225
|
+
prv = getattr(cls, self.ckey)
|
226
|
+
if prv!=cls:
|
227
|
+
return default
|
228
|
+
if hasattr(cls, self.key):
|
229
|
+
return getattr(cls, self.key)
|
230
|
+
return default
|
231
|
+
def set(self, cls, dt):
|
232
|
+
setattr(cls, self.key, dt)
|
233
|
+
setattr(cls, self.ckey, cls)
|
217
234
|
|
235
|
+
pass
|
236
|
+
g_ioc_conf = IOCConf()
|
218
237
|
class IOCObjectAdd_(Basez):
|
219
238
|
def init(self, key, *arr):
|
220
239
|
_arr = update_list(arr)
|
@@ -222,14 +241,13 @@ class IOCObjectAdd_(Basez):
|
|
222
241
|
self._arr = _arr
|
223
242
|
def call(self, cls):
|
224
243
|
rst = {}
|
225
|
-
|
226
|
-
rst = cls._buildz_ioc_conf
|
244
|
+
rst = g_ioc_conf.get(cls, rst)
|
227
245
|
_arr = []
|
228
246
|
if self.key in rst:
|
229
247
|
_arr = rst[self.key]
|
230
248
|
_arr+=self._arr
|
231
249
|
rst[self.key] = _arr
|
232
|
-
cls
|
250
|
+
g_ioc_conf.set(cls, rst)
|
233
251
|
return cls
|
234
252
|
|
235
253
|
pass
|
@@ -267,10 +285,9 @@ class IOCObjectSet_(Basez):
|
|
267
285
|
self._maps = {key:_maps}
|
268
286
|
def call(self, cls):
|
269
287
|
rst = {}
|
270
|
-
|
271
|
-
rst = cls._buildz_ioc_conf
|
288
|
+
rst = g_ioc_conf.get(cls, rst)
|
272
289
|
xf.fill(self._maps, rst)
|
273
|
-
cls
|
290
|
+
g_ioc_conf.set(cls, rst)
|
274
291
|
return cls
|
275
292
|
|
276
293
|
pass
|
@@ -317,15 +334,14 @@ class IOCObject(Basez):
|
|
317
334
|
def call(self, cls):
|
318
335
|
src = cls.__module__+"."+cls.__name__
|
319
336
|
conf = {}
|
320
|
-
|
321
|
-
conf = cls._buildz_ioc_conf
|
337
|
+
conf = g_ioc_conf.get(cls, conf)
|
322
338
|
xf.fill(self._maps, conf)
|
323
339
|
conf['source'] = src
|
324
340
|
conf['type'] = 'object'
|
325
341
|
if 'mcalls' in conf and 'call' not in conf:
|
326
342
|
conf['call'] = {'type': "calls", 'calls': conf['mcalls']}
|
327
343
|
conf[g_obj_cid] = decorator.add_datas(conf)
|
328
|
-
cls
|
344
|
+
g_ioc_conf.set(cls, conf)
|
329
345
|
return cls
|
330
346
|
|
331
347
|
pass
|