buildz 0.6.38__tar.gz → 0.6.40__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.38/buildz.egg-info → buildz-0.6.40}/PKG-INFO +1 -1
- buildz-0.6.40/buildz/argz/args.py +19 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/cachez/cache.py +6 -7
- buildz-0.6.40/buildz/confz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc/conf.py +4 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc/confs.py +48 -6
- buildz-0.6.40/buildz/ioc/ioc/decorator.py +282 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/base.py +5 -2
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/obj.py +22 -17
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/var.py +3 -2
- {buildz-0.6.38 → buildz-0.6.40}/buildz/logz.py +21 -12
- buildz-0.6.40/buildz/pathz.py +60 -0
- {buildz-0.6.38 → buildz-0.6.40/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.6.38 → buildz-0.6.40}/buildz.egg-info/SOURCES.txt +2 -0
- {buildz-0.6.38 → buildz-0.6.40}/setup.py +1 -1
- buildz-0.6.38/buildz/ioc/ioc/decorator.py +0 -107
- buildz-0.6.38/buildz/pathz.py +0 -33
- {buildz-0.6.38 → buildz-0.6.40}/LICENSE +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/MANIFEST.in +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/README.md +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/__main__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/argx.py +0 -0
- /buildz-0.6.38/buildz/confz.py → /buildz-0.6.40/buildz/argz/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/cache.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/config.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/dbs.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/deal.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/deal_list.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/deal_type.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/defs.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/factory.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/init.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/log.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/request.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/run.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/save.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/cache/cache.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/config/base.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/config/config.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/data/fp.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/data/item1.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/data/item2.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/res/data/test.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/test.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/test/xtest.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/auto/verify.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/cachez/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/cmd.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/__main__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/basez.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/orm.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/postgresqlz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/sqlite3z.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/dv/structz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/install.txt +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/run.conf +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/runz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/db/tls.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/test.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/fz/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/fz/fio.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/html/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/html/test/test.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/html/xml.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/init.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/pyz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tools.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/test_xfind.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/time/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/time/timez.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/tz/xfind.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/code.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/file.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/test.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/mapz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/read.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/readz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/stack.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/write.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/deal/listmapz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xz/__init__.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xz/conf.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xz/data.js +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xz/test.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz/xz/trs.py +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.38 → buildz-0.6.40}/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.40
|
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
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
|
3
|
+
from buildz import xf, Base
|
4
|
+
|
5
|
+
class Args(Base):
|
6
|
+
"""
|
7
|
+
order: [0, cal]
|
8
|
+
args: [(1,), []]
|
9
|
+
maps: {
|
10
|
+
|
11
|
+
}
|
12
|
+
"""
|
13
|
+
def init(self, conf):
|
14
|
+
if type(conf)==str:
|
15
|
+
conf = xf.loads(conf)
|
16
|
+
self.conf = conf
|
17
|
+
def call(self, argx):
|
18
|
+
|
19
|
+
pass
|
@@ -157,13 +157,13 @@ class Mem(Cache):
|
|
157
157
|
|
158
158
|
pass
|
159
159
|
@ns.obj(id="cache")
|
160
|
-
@ns.obj_args("ref, cache.
|
160
|
+
@ns.obj_args("ref, cache.mem", "ref, cache.file")
|
161
161
|
class Caches(Base):
|
162
|
-
def init(self,
|
162
|
+
def init(self, mem, cache):
|
163
163
|
self.cache = cache
|
164
164
|
self.mem = mem
|
165
|
-
self.caches = [
|
166
|
-
self.set =
|
165
|
+
self.caches = [mem, cache]
|
166
|
+
self.set = mem.set
|
167
167
|
self.remove = cache.remove
|
168
168
|
self.call=cache.call
|
169
169
|
self.rfp = cache.rfp
|
@@ -188,9 +188,8 @@ class Caches(Base):
|
|
188
188
|
self.mem.remove(key)
|
189
189
|
def get(self, key):
|
190
190
|
for cache in self.caches:
|
191
|
-
|
192
|
-
|
193
|
-
return v
|
191
|
+
if cache.has(key):
|
192
|
+
return cache.get(key)
|
194
193
|
return None
|
195
194
|
def has(self, key):
|
196
195
|
for cache in self.caches:
|
File without changes
|
@@ -197,6 +197,10 @@ class Conf(Base):
|
|
197
197
|
return self.confs.set_var(key, val)
|
198
198
|
def unset_var(self, key):
|
199
199
|
return self.confs.unset_var(key)
|
200
|
+
def set_vars(self, vars):
|
201
|
+
return self.confs.set_vars(vars)
|
202
|
+
def unset_vars(self, vars):
|
203
|
+
return self.confs.unset_vars(vars)
|
200
204
|
def var_keys(self):
|
201
205
|
return self.confs.var_keys()
|
202
206
|
def push_var(self, key, val):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from buildz import xf, pyz
|
3
|
-
from .decorator import decorator
|
3
|
+
from .decorator import decorators,IOCDObj,decorator
|
4
4
|
from buildz.xf import g as xg
|
5
5
|
from buildz import argx
|
6
6
|
import json
|
@@ -274,6 +274,10 @@ class Confs(Base):
|
|
274
274
|
if not self.has_var(key):
|
275
275
|
return None, False
|
276
276
|
return self.vars[key][i], True
|
277
|
+
def set_vars(self, vars):
|
278
|
+
[self.set_var(key,val) for key,val in vars.items()]
|
279
|
+
def unset_vars(self, vars):
|
280
|
+
[self.unset_var(key) for key in vars]
|
277
281
|
def push_vars(self, vars):
|
278
282
|
if vars is not None:
|
279
283
|
[self.push_var(key,val) for key,val in vars.items()]
|
@@ -370,16 +374,21 @@ class Confs(Base):
|
|
370
374
|
raise
|
371
375
|
#return self.add(conf)
|
372
376
|
def add_decorator(self):
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
#
|
377
|
-
return self.
|
377
|
+
decorators.bind(self)
|
378
|
+
#decorator.bind_confs(self)
|
379
|
+
return
|
380
|
+
# confs = decorator.all()
|
381
|
+
# return self.adds(confs)
|
382
|
+
# conf = decorator()
|
383
|
+
# #print(f"[TESTZ] CONFS add decorator(): {conf}")
|
384
|
+
# return self.add(conf)
|
378
385
|
def add_wrap(self):
|
379
386
|
return self.add_decorator()
|
380
387
|
def adds(self, confs):
|
381
388
|
for conf in confs:
|
382
389
|
self.add(conf)
|
390
|
+
def get_conf(self, id):
|
391
|
+
return self.confs[id]
|
383
392
|
def add(self, conf):
|
384
393
|
"""
|
385
394
|
{
|
@@ -517,4 +526,37 @@ class ConfsList(Base):
|
|
517
526
|
|
518
527
|
pass
|
519
528
|
|
529
|
+
class PushVar(IOCDObj):
|
530
|
+
def init(self, key, val):
|
531
|
+
super().init()
|
532
|
+
self.key = key
|
533
|
+
self.val = val
|
534
|
+
def bind(self, wrap):
|
535
|
+
super().bind(wrap)
|
536
|
+
self.decorator.add_bind(self)
|
537
|
+
def call(self):
|
538
|
+
conf = self.decorator.obj
|
539
|
+
confs = conf.confs
|
540
|
+
id = confs.gid(self.decorator.namespace, self.key)
|
541
|
+
confs.push_var(id, val)
|
542
|
+
|
543
|
+
pass
|
544
|
+
# class PushVar(IOCDObj):
|
545
|
+
# def init(self, id):
|
546
|
+
# super().init()
|
547
|
+
# self.id = id
|
548
|
+
# def call(self, val):
|
549
|
+
# def bind_fc():
|
550
|
+
# conf = self.decorator.obj
|
551
|
+
# confs = conf.confs
|
552
|
+
# id = confs.gid(self.decorator.namespace, self.id)
|
553
|
+
# confs.push_var(id, val)
|
554
|
+
# self.decorator.add_bind(bind_fc)
|
555
|
+
# return val
|
556
|
+
|
557
|
+
# pass
|
558
|
+
|
559
|
+
|
560
|
+
decorator.regist("push_var", PushVar)
|
561
|
+
#ns.push_var("path")(pathz)
|
520
562
|
|
@@ -0,0 +1,282 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
from buildz.base import Base
|
3
|
+
from buildz import xf
|
4
|
+
from threading import Lock
|
5
|
+
class Fcs(Base):
|
6
|
+
def init(self, wrap, fcs):
|
7
|
+
self._ioc_args = [wrap, fcs]
|
8
|
+
self._base = wrap
|
9
|
+
@property
|
10
|
+
def conf(self):
|
11
|
+
return self._ioc_args[0].obj
|
12
|
+
def __getattr__(self, key):
|
13
|
+
return self._ioc_args[1][key]
|
14
|
+
|
15
|
+
pass
|
16
|
+
class IOCDObj(Base):
|
17
|
+
def init(self):
|
18
|
+
self._wrap = None
|
19
|
+
def bind(self, wrap):
|
20
|
+
self._wrap = wrap
|
21
|
+
return self
|
22
|
+
@property
|
23
|
+
def wrap(self):
|
24
|
+
return self._wrap
|
25
|
+
@property
|
26
|
+
def decorator(self):
|
27
|
+
return self._wrap
|
28
|
+
|
29
|
+
pass
|
30
|
+
class IOCDWrap(Base):
|
31
|
+
def init(self, fc, wrap):
|
32
|
+
self.wrap = wrap
|
33
|
+
while isinstance(fc, IOCDWrap):
|
34
|
+
fc = fc.fc
|
35
|
+
self.fc = fc
|
36
|
+
def call(self, *args, **maps):
|
37
|
+
fc = self.fc(*args, **maps)
|
38
|
+
if isinstance(fc, IOCDObj):
|
39
|
+
fc.bind(self.wrap)
|
40
|
+
return fc
|
41
|
+
#return self.fc(*args, **maps).bind(self.wrap)
|
42
|
+
|
43
|
+
pass
|
44
|
+
class Decorator(Base):
|
45
|
+
"""
|
46
|
+
用@备注的形式自动生成conf文档
|
47
|
+
"""
|
48
|
+
@property
|
49
|
+
def namespace(self):
|
50
|
+
return self.ns
|
51
|
+
def init(self, ns=None, lock = False):
|
52
|
+
self.conf = {}
|
53
|
+
self.ns = ns
|
54
|
+
self.fcs = {}
|
55
|
+
self.obj_fcs = Fcs(self, self.fcs)
|
56
|
+
self.obj = None
|
57
|
+
self.id = None
|
58
|
+
self.bind_fcs = []
|
59
|
+
self.do_lock = lock
|
60
|
+
if lock:
|
61
|
+
self.lock = Lock()
|
62
|
+
self.set = self.lk_fc(self.set)
|
63
|
+
self.get = self.lk_fc(self.get)
|
64
|
+
self.add = self.lk_fc(self.add)
|
65
|
+
self.add_bind = self.lk_fc(self.add_bind)
|
66
|
+
def add_bind(self, fc):
|
67
|
+
fc = IOCDWrap(fc, self)
|
68
|
+
self.bind_fcs.append(fc)
|
69
|
+
def lk_fc(self, fc):
|
70
|
+
def _fc(*a, **b):
|
71
|
+
with self.lock:
|
72
|
+
return fc(*a, **b)
|
73
|
+
return _fc
|
74
|
+
def bind(self, confs):
|
75
|
+
self.conf['namespace'] = self.ns
|
76
|
+
#from buildz import xf
|
77
|
+
#print(f"[TESTZ] Decorator conf: {self.conf}")
|
78
|
+
self.id = confs.add(self.conf)
|
79
|
+
self.obj = confs.get_conf(self.id)
|
80
|
+
for fc in self.bind_fcs:
|
81
|
+
fc()
|
82
|
+
def call(self):
|
83
|
+
return self.obj_fcs
|
84
|
+
def regist(self, key, fc):
|
85
|
+
fc = IOCDWrap(fc, self)
|
86
|
+
self.fcs[key]=fc
|
87
|
+
def clone(self, ns=None, lock=None):
|
88
|
+
if lock is None:
|
89
|
+
lock = self.do_lock
|
90
|
+
dc = Decorator(ns, lock)
|
91
|
+
for k,fc in self.fcs.items():
|
92
|
+
dc.regist(k, fc)
|
93
|
+
for fc in self.bind_fcs:
|
94
|
+
dc.add_bind(fc)
|
95
|
+
return dc
|
96
|
+
def get(self, tag, index):
|
97
|
+
conf = self.conf
|
98
|
+
if tag not in conf:
|
99
|
+
conf[tag]=[]
|
100
|
+
return conf[tag][index]
|
101
|
+
def add(self, tag, data):
|
102
|
+
conf = self.conf
|
103
|
+
if tag not in conf:
|
104
|
+
conf[tag]=[]
|
105
|
+
id = len(conf[tag])
|
106
|
+
conf[tag].append(data)
|
107
|
+
return id
|
108
|
+
def set(self, tag, key, val):
|
109
|
+
conf = self.conf
|
110
|
+
if tag not in conf:
|
111
|
+
conf[tag]={}
|
112
|
+
conf[tag][key]=val
|
113
|
+
def add_datas(self, item):
|
114
|
+
if type(item)==str:
|
115
|
+
item = xf.loads(item)
|
116
|
+
return self.add("datas", item)
|
117
|
+
def get_datas(self, id):
|
118
|
+
return self.get("datas", id)
|
119
|
+
def set_datas(self, id, val):
|
120
|
+
return self.set("datas", id, val)
|
121
|
+
def set_envs(self, key, val):
|
122
|
+
return self.set("env", key, val)
|
123
|
+
def add_inits(self, val):
|
124
|
+
return self.add("inits", val)
|
125
|
+
def add_locals(self, item):
|
126
|
+
return self.add("locals", item)
|
127
|
+
|
128
|
+
pass
|
129
|
+
|
130
|
+
class Decorators(Base):
|
131
|
+
decorator_fc_names = "regist,get,add,set,add_datas,get_datas,set_datas,set_envs,add_inits,add_locals".split(",")
|
132
|
+
def init(self, ns=None):
|
133
|
+
self.demo = Decorator(ns)
|
134
|
+
self.ns = ns
|
135
|
+
self.confs = {}
|
136
|
+
self.confs[ns] = self.demo
|
137
|
+
self.obj = None
|
138
|
+
for nfc in Decorators.decorator_fc_names:
|
139
|
+
setattr(self, nfc, self.ns_fc(nfc))
|
140
|
+
def ns_fc(self, nfc):
|
141
|
+
def _fc(*a, ns=None):
|
142
|
+
return getattr(self.decorator(ns), nfc)(*a)
|
143
|
+
return _fc
|
144
|
+
def decorator(self, ns=None):
|
145
|
+
if ns is None:
|
146
|
+
ns = self.ns
|
147
|
+
if ns not in self.confs:
|
148
|
+
self.confs[ns] = self.demo.clone(ns)
|
149
|
+
return self.confs[ns]
|
150
|
+
def call(self, ns=None):
|
151
|
+
return self.decorator(ns)()
|
152
|
+
def bind(self, confs):
|
153
|
+
for ns, conf in self.confs.items():
|
154
|
+
conf.bind(confs)
|
155
|
+
self.obj = confs
|
156
|
+
|
157
|
+
pass
|
158
|
+
decorators = Decorators()
|
159
|
+
decorator = decorators.demo
|
160
|
+
ns = decorators
|
161
|
+
# class Decorator(Base):
|
162
|
+
# def init(self):
|
163
|
+
# #self.conf = {}
|
164
|
+
# self.confs = {}
|
165
|
+
# self.confs[None] = {}
|
166
|
+
# self.objs = {}
|
167
|
+
# self.ids = {}
|
168
|
+
# self.namespace = None
|
169
|
+
# self.fcs = {}
|
170
|
+
# self._ns = {}
|
171
|
+
# self.regist("add_datas", self.add_datas)
|
172
|
+
# def get_conf_obj(self, ns):
|
173
|
+
# return self.objs[ns]
|
174
|
+
# @property
|
175
|
+
# def conf(self):
|
176
|
+
# return self.get_conf_obj(self.namespace)
|
177
|
+
# def fcns(self, namespace, fc):
|
178
|
+
# self._ns[fc] = namespace
|
179
|
+
# def ns(self, namespace):
|
180
|
+
# self.namespace = namespace
|
181
|
+
# def curr_ns(self):
|
182
|
+
# return self.namespace
|
183
|
+
# def regist(self, key, fc):
|
184
|
+
# self.fcs[key] = fc
|
185
|
+
# def get_conf(self, src, ns = None):
|
186
|
+
# if ns is None:
|
187
|
+
# ns = self.namespace
|
188
|
+
# if src in self._ns:
|
189
|
+
# ns = self._ns[src]
|
190
|
+
# if ns not in self.confs:
|
191
|
+
# conf = {}
|
192
|
+
# conf['namespace'] = ns
|
193
|
+
# self.confs[ns] = conf
|
194
|
+
# return self.confs[ns]
|
195
|
+
# def get(self, tag, index, src=None):
|
196
|
+
# conf = self.get_conf(src)
|
197
|
+
# if tag not in conf:
|
198
|
+
# conf[tag]=[]
|
199
|
+
# return conf[tag][index]
|
200
|
+
# def add(self, tag, data, src = None, ns = None):
|
201
|
+
# conf = self.get_conf(src, ns)
|
202
|
+
# if tag not in conf:
|
203
|
+
# conf[tag]=[]
|
204
|
+
# id = len(conf[tag])
|
205
|
+
# conf[tag].append(data)
|
206
|
+
# return id
|
207
|
+
# def set(self, tag, key, val, src=None):
|
208
|
+
# conf = self.get_conf(src)
|
209
|
+
# if tag not in conf:
|
210
|
+
# conf[tag]={}
|
211
|
+
# conf[tag][key]=val
|
212
|
+
# def add_datas(self, item, key=None, ns = None):
|
213
|
+
# if type(item)==str:
|
214
|
+
# item = xf.loads(item)
|
215
|
+
# return self.add("datas", item, key, ns)
|
216
|
+
# def get_datas(self, id, key=None):
|
217
|
+
# return self.get("datas", id, key)
|
218
|
+
# def set_datas(self, id, val):
|
219
|
+
# return self.set("datas", id, val)
|
220
|
+
# def set_envs(self, key, val):
|
221
|
+
# return self.set("env", key, val)
|
222
|
+
# def add_inits(self, val):
|
223
|
+
# return self.add("inits", val)
|
224
|
+
# def add_locals(self, item):
|
225
|
+
# return self.add("locals", item)
|
226
|
+
# def bind_confs(self, confs):
|
227
|
+
# for ns, val in self.confs.items():
|
228
|
+
# id = confs.add(val)
|
229
|
+
# obj = confs.get_conf(id)
|
230
|
+
# self.ids[ns] = id
|
231
|
+
# self.objs[ns] = obj
|
232
|
+
# def all(self):
|
233
|
+
# arr = [val for k,val in self.confs.items()]
|
234
|
+
# return arr
|
235
|
+
# # def call(self):
|
236
|
+
# # return self.conf
|
237
|
+
|
238
|
+
# pass
|
239
|
+
|
240
|
+
# decorator = Decorator()
|
241
|
+
# class Fcs:
|
242
|
+
# def __init__(self, k, ns):
|
243
|
+
# self._ioc_ns = [k, ns]
|
244
|
+
# @property
|
245
|
+
# def conf(self):
|
246
|
+
# return self._ioc_ns[1].get_conf(self._ioc_ns[0])
|
247
|
+
|
248
|
+
# pass
|
249
|
+
# class NameSpace(Base):
|
250
|
+
# def get_conf(self, ns):
|
251
|
+
# return self.decorator.get_conf_obj(ns)
|
252
|
+
# def init(self, decorator):
|
253
|
+
# self.decorator = decorator
|
254
|
+
# self.lock = Lock()
|
255
|
+
# def fc(self, namespace, rfc):
|
256
|
+
# def wfc(*a, **b):
|
257
|
+
# with self.lock:
|
258
|
+
# ns = self.decorator.curr_ns()
|
259
|
+
# self.decorator.ns(namespace)
|
260
|
+
# rst = rfc(*a,**b)
|
261
|
+
# self.decorator.fcns(namespace, rst)
|
262
|
+
# self.decorator.ns(ns)
|
263
|
+
# return rst
|
264
|
+
# return wfc
|
265
|
+
# def call(self, namespace):
|
266
|
+
# fcs = self.decorator.fcs
|
267
|
+
# obj = Fcs(namespace, self)
|
268
|
+
# for k,f in fcs.items():
|
269
|
+
# setattr(obj, k, self.fc(namespace, f))
|
270
|
+
# def wfc(rfc, *a, **b):
|
271
|
+
# with self.lock:
|
272
|
+
# ns = self.decorator.curr_ns()
|
273
|
+
# self.decorator.ns(namespace)
|
274
|
+
# rst = rfc(*a,**b)
|
275
|
+
# self.decorator.fcns(namespace, rst)
|
276
|
+
# self.decorator.ns(ns)
|
277
|
+
# return rst
|
278
|
+
# setattr(obj, "wrap", wfc)
|
279
|
+
# return obj
|
280
|
+
|
281
|
+
# pass
|
282
|
+
# ns = NameSpace(decorator)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
from ..ioc.base import Base, EncapeData, IdNotFoundError
|
4
4
|
from buildz import xf
|
5
|
-
from ..ioc.decorator import decorator
|
5
|
+
from ..ioc.decorator import decorator, IOCDObj
|
6
6
|
import os
|
7
7
|
dp = os.path.dirname(__file__)
|
8
8
|
join = os.path.join
|
@@ -215,7 +215,10 @@ class FormatDeal(BaseDeal):
|
|
215
215
|
|
216
216
|
pass
|
217
217
|
|
218
|
-
class Order(
|
218
|
+
class Order(IOCDObj):
|
219
|
+
"""
|
220
|
+
应该是什么没写完全的功能,已经忘记是做啥用的了
|
221
|
+
"""
|
219
222
|
def init(self, *fcs, reverse=False):
|
220
223
|
self.fcs = fcs
|
221
224
|
if reverse:
|
@@ -1,12 +1,12 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData,IOCError
|
3
3
|
from ..ioc.single import Single
|
4
|
-
from ..ioc.decorator import decorator
|
4
|
+
from ..ioc.decorator import decorator, IOCDObj
|
5
5
|
from .base import FormatData,FormatDeal
|
6
6
|
from buildz import xf, pyz
|
7
7
|
from buildz import Base as Basez
|
8
8
|
import os
|
9
|
-
g_obj_cid = '_buildz_ioc_conf_index'
|
9
|
+
#g_obj_cid = '_buildz_ioc_conf_index'
|
10
10
|
dp = os.path.dirname(__file__)
|
11
11
|
join = os.path.join
|
12
12
|
class ObjectDeal(FormatDeal):
|
@@ -217,28 +217,31 @@ pass
|
|
217
217
|
ioc_conf_key = "_buildz_ioc_conf"
|
218
218
|
class IOCConf(Basez):
|
219
219
|
def init(self, key = "_buildz_ioc_conf", ckey = "_buildz_ioc_conf_cls"):
|
220
|
-
self.
|
221
|
-
self.
|
220
|
+
self.maps = {}
|
221
|
+
self.cmaps = {}
|
222
222
|
def get(self, cls, default):
|
223
|
-
|
223
|
+
key = id(cls)
|
224
|
+
if key not in self.cmaps:
|
224
225
|
return default
|
225
|
-
prv =
|
226
|
+
prv = self.cmaps[key]
|
226
227
|
if prv!=cls:
|
227
228
|
return default
|
228
|
-
if
|
229
|
-
return
|
229
|
+
if key in self.maps:
|
230
|
+
return self.maps[key]
|
230
231
|
return default
|
231
232
|
def unset(self, cls):
|
232
|
-
|
233
|
-
|
234
|
-
|
233
|
+
key = id(cls)
|
234
|
+
if key in self.cmaps:
|
235
|
+
del self.cmaps[key]
|
236
|
+
del self.maps[key]
|
235
237
|
def set(self, cls, dt):
|
236
|
-
|
237
|
-
|
238
|
+
key = id(cls)
|
239
|
+
self.maps[key] = dt
|
240
|
+
self.cmaps[key] = cls
|
238
241
|
|
239
242
|
pass
|
240
243
|
g_ioc_conf = IOCConf()
|
241
|
-
class IOCObjectAdd_(
|
244
|
+
class IOCObjectAdd_(IOCDObj):
|
242
245
|
def init(self, key, *arr):
|
243
246
|
_arr = update_list(arr)
|
244
247
|
self.key = key
|
@@ -283,7 +286,7 @@ class IOCObjectMCall(IOCObjectAdd_):
|
|
283
286
|
super().init("mcalls", *_arr)
|
284
287
|
|
285
288
|
pass
|
286
|
-
class IOCObjectSet_(
|
289
|
+
class IOCObjectSet_(IOCDObj):
|
287
290
|
def init(self, key, **maps):
|
288
291
|
_maps = update_set(maps)
|
289
292
|
self._maps = {key:_maps}
|
@@ -305,10 +308,11 @@ class IOCObjectMap(IOCObjectSet_):
|
|
305
308
|
super().init("maps", **maps)
|
306
309
|
|
307
310
|
pass
|
308
|
-
class IOCObject(
|
311
|
+
class IOCObject(IOCDObj):
|
309
312
|
KEYS = "id,args,maps,call,prev_call,single,remove,sets,after_remove,template,parent,temp".split(",")
|
310
313
|
SET_KEYS = "maps,sets".split(",")
|
311
314
|
def init(self, **maps):
|
315
|
+
super().init()
|
312
316
|
rst = update_set(maps)
|
313
317
|
for key in self.SET_KEYS:
|
314
318
|
if key not in maps:
|
@@ -344,7 +348,8 @@ class IOCObject(Basez):
|
|
344
348
|
conf['type'] = 'object'
|
345
349
|
if 'mcalls' in conf and 'call' not in conf:
|
346
350
|
conf['call'] = {'type': "calls", 'calls': conf['mcalls']}
|
347
|
-
|
351
|
+
self.decorator.add_datas(conf)
|
352
|
+
#conf[g_obj_cid] = self.decorator.add_datas(conf, self)
|
348
353
|
g_ioc_conf.unset(cls)
|
349
354
|
return cls
|
350
355
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
3
|
from .base import FormatData,FormatDeal
|
4
|
-
from ..ioc.decorator import decorator
|
4
|
+
from ..ioc.decorator import decorator,IOCDObj
|
5
5
|
from buildz import xf, pyz
|
6
6
|
from buildz import Base as Basez
|
7
7
|
import os
|
@@ -38,8 +38,9 @@ class VarDeal(FormatDeal):
|
|
38
38
|
|
39
39
|
pass
|
40
40
|
|
41
|
-
class IOCVar(
|
41
|
+
class IOCVar(IOCDObj):
|
42
42
|
def init(self, id):
|
43
|
+
super().init()
|
43
44
|
self.id = id
|
44
45
|
def call(self, cls):
|
45
46
|
src = cls.__module__+"."+cls.__name__
|
@@ -5,7 +5,7 @@ from . import xf, ioc, fz
|
|
5
5
|
from .base import Base
|
6
6
|
from .ioc import wrap
|
7
7
|
#from .tools import *
|
8
|
-
import time, sys
|
8
|
+
import time, sys, threading
|
9
9
|
ns = wrap.ns("buildz.logz")
|
10
10
|
@ns.obj(id="baseLog")
|
11
11
|
@ns.obj_args("ref, buildz.logz.shows, null", "ref, buildz.logz.tag, null", "ref, buildz.logz.base, null")
|
@@ -24,17 +24,26 @@ class Log(Base):
|
|
24
24
|
return log
|
25
25
|
def get_tag(self):
|
26
26
|
return self._tag
|
27
|
-
def init(self, shows = None, tag= None, base = None):
|
27
|
+
def init(self, shows = None, tag= None, base = None, lock = False):
|
28
28
|
if shows is None:
|
29
29
|
shows = ["info", "debug", "warn", "error"]
|
30
30
|
self.shows=shows
|
31
31
|
self._tag = tag
|
32
32
|
self.base = base
|
33
|
+
if lock:
|
34
|
+
self.lock = threading.Lock()
|
35
|
+
else:
|
36
|
+
self.lock = None
|
37
|
+
def log(self, level, tag, *args):
|
38
|
+
if self.lock is not None:
|
39
|
+
with self.lock:
|
40
|
+
return self.do_log(level, tag, *args)
|
41
|
+
return self.do_log(level, tag, *args)
|
33
42
|
def xlog(self, level, *args):
|
34
43
|
if level not in self.shows:
|
35
44
|
return
|
36
45
|
self.log(level, self.tag, *args)
|
37
|
-
def
|
46
|
+
def do_log(self, level, tag, *args):
|
38
47
|
if self.base is not None:
|
39
48
|
return self.base.log(level, tag, *args)
|
40
49
|
raise Exception("unimpl")
|
@@ -70,14 +79,14 @@ def mstr(s):
|
|
70
79
|
@ns.obj(id="formatLog")
|
71
80
|
@ns.obj_args("ref, buildz.logz.shows, null", "ref, buildz.logz.tag, null", "ref, buildz.logz.format, null")
|
72
81
|
class FormatLog(Log):
|
73
|
-
def init(self, shows =None, tag=None, format=None):
|
82
|
+
def init(self, shows =None, tag=None, format=None, lock = False):
|
74
83
|
if format is None:
|
75
84
|
format = "[{LEVEL}] %Y-%m-%d %H:%M:%S {tag} {msg}\n"
|
76
85
|
self.format=format
|
77
|
-
super().init(shows, tag)
|
86
|
+
super().init(shows, tag, lock)
|
78
87
|
def output(self, msg):
|
79
88
|
raise Exception("impl")
|
80
|
-
def
|
89
|
+
def do_log(self, level, tag, *args):
|
81
90
|
m_level = level.lower()
|
82
91
|
u_level = level.upper()
|
83
92
|
x_level = mstr(level)
|
@@ -89,8 +98,8 @@ class FormatLog(Log):
|
|
89
98
|
msg = replaces(rst, "{Level}", x_level, "{level}", m_level, "{LEVEL}", u_level, "{tag}", tag, "{msg}", msg)
|
90
99
|
self.output(msg)
|
91
100
|
class FpLog(FormatLog):
|
92
|
-
def init(self, fp = None,shows =None, tag=None, format=None):
|
93
|
-
super().init(shows, tag, format)
|
101
|
+
def init(self, fp = None,shows =None, tag=None, format=None, lock = False):
|
102
|
+
super().init(shows, tag, format, lock)
|
94
103
|
self.fp = fp
|
95
104
|
def output(self, msg):
|
96
105
|
#sys.stdout.write(msg)
|
@@ -106,14 +115,14 @@ class StdLog(FormatLog):
|
|
106
115
|
|
107
116
|
pass
|
108
117
|
#wrap.decorator.add_datas()
|
109
|
-
wrap.
|
118
|
+
wrap.ns.add_datas("[logs.list, refs], buildz\.logz\.item,", ns = "buildz.logz")
|
110
119
|
@ns.obj(id="logs")
|
111
120
|
@ns.obj_args("ref, logs.list, []", "ref, buildz.logz.shows,null", "ref, buildz.logz.tag, null")
|
112
121
|
class Logs(Log):
|
113
|
-
def init(self, logs, shows = None, tag= None):
|
114
|
-
super().init(shows, tag)
|
122
|
+
def init(self, logs, shows = None, tag= None, lock = False):
|
123
|
+
super().init(shows, tag, lock=lock)
|
115
124
|
self.logs = logs
|
116
|
-
def
|
125
|
+
def do_log(self, level, tag, *args):
|
117
126
|
for _log in self.logs:
|
118
127
|
_log.log(level, tag, *args)
|
119
128
|
|