buildz 0.6.16__tar.gz → 0.6.18__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.16/buildz.egg-info → buildz-0.6.18}/PKG-INFO +1 -1
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/cache.py +3 -3
- buildz-0.6.18/buildz/auto/defs.py +46 -0
- buildz-0.6.18/buildz/auto/init.py +13 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/log.py +13 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/request.py +21 -7
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/run.py +2 -2
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/test/cache/cache.js +26 -15
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/test/config/config.js +3 -2
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/test/data/item2.js +4 -1
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/test/test.py +5 -1
- {buildz-0.6.16 → buildz-0.6.18}/buildz/html/xml.py +41 -11
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc/confs.py +7 -1
- {buildz-0.6.16 → buildz-0.6.18/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.6.16 → buildz-0.6.18}/buildz.egg-info/SOURCES.txt +1 -0
- {buildz-0.6.16 → buildz-0.6.18}/setup.py +1 -1
- buildz-0.6.16/buildz/auto/init.py +0 -12
- {buildz-0.6.16 → buildz-0.6.18}/LICENSE +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/MANIFEST.in +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/README.md +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/__main__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/argx.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/config.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/deal.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/deal_type.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/factory.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/save.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/test/data/item1.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/test/data/test.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/auto/verify.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/cmd.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/__main__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/dv/basez.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/dv/structz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/install.txt +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/run.conf +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/db/runz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/test.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/fz/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/fz/fio.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/html/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/html/test/test.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/init.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/pyz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tools.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/__init__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/code.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/file.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/test.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/mapz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/read.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/readz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/stack.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/write.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.16 → buildz-0.6.18}/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.18
|
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
|
@@ -61,8 +61,8 @@ class Save(Base):
|
|
61
61
|
return
|
62
62
|
fz.makefdir(fp)
|
63
63
|
rst = self.cache.data
|
64
|
-
rs = xf.dumps(rst, format=True)
|
65
|
-
fz.write(rs, fp, '
|
64
|
+
rs = xf.dumps(rst, format=True).encode("utf-8")
|
65
|
+
fz.write(rs, fp, 'wb')
|
66
66
|
return True
|
67
67
|
|
68
68
|
pass
|
@@ -117,7 +117,7 @@ class Cache(Base):
|
|
117
117
|
data = {}
|
118
118
|
if os.path.isfile(fp):
|
119
119
|
self.log.info(f"load cache from {fp}")
|
120
|
-
data = xf.flush_maps(xf.loadf(fp),visit_list=
|
120
|
+
data = xf.flush_maps(xf.loadf(fp),visit_list=True)
|
121
121
|
xf.fill(data, self.data, replace=0)
|
122
122
|
return True
|
123
123
|
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
from ..tools import *
|
3
|
+
from buildz.ioc import wrap
|
4
|
+
@wrap.obj(id="defs")
|
5
|
+
@wrap.obj_args("ref, cache", "ref, log", "ref, cache.modify")
|
6
|
+
class Defs(Base):
|
7
|
+
def init(self, cache, log, upd):
|
8
|
+
self.cache = cache
|
9
|
+
self.log = log
|
10
|
+
self.upd = upd
|
11
|
+
def update(self, s, defs, ignore=None):
|
12
|
+
if type(s)==dict:
|
13
|
+
rst = {}
|
14
|
+
for k,v in s.items():
|
15
|
+
if k == ignore:
|
16
|
+
continue
|
17
|
+
k,v = self.update(k, defs), self.update(v, defs)
|
18
|
+
rst[k] = v
|
19
|
+
return rst
|
20
|
+
elif type(s)==list:
|
21
|
+
rst = []
|
22
|
+
for v in s:
|
23
|
+
v = self.update(v,defs)
|
24
|
+
rst.append(v)
|
25
|
+
return rst
|
26
|
+
for k,v in defs.items():
|
27
|
+
if k==s:
|
28
|
+
s = v
|
29
|
+
continue
|
30
|
+
if type(k)!=str:
|
31
|
+
continue
|
32
|
+
if type(s)!=str:
|
33
|
+
continue
|
34
|
+
s = s.replace(k,str(v))
|
35
|
+
return s
|
36
|
+
def call(self, data, fc=None):
|
37
|
+
defs = self.upd(xf.g(data, defs = {}))
|
38
|
+
data = self.update(data, defs, "defs")
|
39
|
+
data = self.upd(data)
|
40
|
+
if fc is None:
|
41
|
+
return True
|
42
|
+
return fc(data)
|
43
|
+
|
44
|
+
pass
|
45
|
+
|
46
|
+
|
@@ -11,6 +11,7 @@ import time, sys
|
|
11
11
|
class Log(Base):
|
12
12
|
def init(self):
|
13
13
|
self.fp = None
|
14
|
+
self.show=[]
|
14
15
|
def log(self, level, *args):
|
15
16
|
args = [str(k) for k in args]
|
16
17
|
msg = " ".join(args)
|
@@ -22,16 +23,28 @@ class Log(Base):
|
|
22
23
|
fz.makefdir(fp)
|
23
24
|
fz.write(msg.encode("utf-8"), fp, 'ab')
|
24
25
|
def info(self, *args):
|
26
|
+
if "info" not in self.shows:
|
27
|
+
return
|
25
28
|
self.log("INFO", *args)
|
26
29
|
def warn(self, *args):
|
30
|
+
if "warn" not in self.shows:
|
31
|
+
return
|
27
32
|
self.log("WARN", *args)
|
28
33
|
def debug(self, *args):
|
34
|
+
if "debug" not in self.shows:
|
35
|
+
return
|
29
36
|
self.log("DEBUG", *args)
|
30
37
|
def error(self, *args):
|
38
|
+
if "error" not in self.shows:
|
39
|
+
return
|
31
40
|
self.log("ERROR", *args)
|
32
41
|
def call(self, maps, fp):
|
33
42
|
fp = xf.g(maps, log = None)
|
34
43
|
self.fp = fp
|
44
|
+
shows = xf.get(maps, "log.shows")
|
45
|
+
if shows is None:
|
46
|
+
shows = ["info", "warn", "error"]
|
47
|
+
self.shows = shows
|
35
48
|
return True
|
36
49
|
|
37
50
|
pass
|
@@ -13,14 +13,16 @@ except:
|
|
13
13
|
|
14
14
|
pass
|
15
15
|
class Request(Base):
|
16
|
-
def init(self, http_type, use_session, log, upd):
|
16
|
+
def init(self, http_type, use_session, log, upd, cache=None, debug=False):
|
17
17
|
self.type = http_type
|
18
|
+
self.cache = cache
|
18
19
|
self.use_session = use_session
|
19
20
|
self.log = log
|
20
21
|
self.upd = upd
|
21
22
|
self.fc = None
|
22
23
|
self.fcs = None
|
23
24
|
self.key_data = None
|
25
|
+
self.debug = debug
|
24
26
|
self.build()
|
25
27
|
def build(self):
|
26
28
|
fcs = {}
|
@@ -54,9 +56,14 @@ class Request(Base):
|
|
54
56
|
url = xf.g(data, url=None)
|
55
57
|
xf.s(data, status_code = rp.status_code)
|
56
58
|
xf.s(data, result_code = rp.status_code)
|
59
|
+
if self.debug:
|
60
|
+
self.log.debug(f"request url '{url}' return code: {rp.status_code}")
|
57
61
|
try:
|
58
62
|
xf.s(data, result_content=rp.content)
|
63
|
+
debug_ct = rp.content
|
59
64
|
s = xf.decode(rp.content, "utf-8")
|
65
|
+
if self.debug:
|
66
|
+
self.log.debug(f"request url '{url}' return msg:{s}")
|
60
67
|
xf.s(data, result_text=s)
|
61
68
|
except Exception as exp:
|
62
69
|
self.log.warn(f"exp in deal response on '{url}': {exp}")
|
@@ -79,13 +86,20 @@ class Request(Base):
|
|
79
86
|
if self.fc is None:
|
80
87
|
self.log.error("install requests to use this(pip install requests)")
|
81
88
|
return False
|
89
|
+
if self.cache is not None:
|
90
|
+
debug = self.cache.get("request.debug")
|
91
|
+
if debug is not None:
|
92
|
+
self.debug = debug
|
82
93
|
if self.upd is not None:
|
83
94
|
data = self.upd(data)
|
84
95
|
url = xf.g(data, url=None)
|
96
|
+
#self.log.debug(f"request.debug: {self.debug}")
|
97
|
+
if self.debug:
|
98
|
+
self.log.debug(f"try request url '{url}' with type {self.type}")
|
85
99
|
try:
|
86
100
|
rp = self.req(data)
|
87
101
|
except Exception as exp:
|
88
|
-
self.log.error("error in request '{url}' with method {self.type}: {exp}")
|
102
|
+
self.log.error(f"error in request '{url}' with method {self.type}: {exp}")
|
89
103
|
return False
|
90
104
|
self.rsp(rp, data)
|
91
105
|
if fc is None:
|
@@ -96,35 +110,35 @@ pass
|
|
96
110
|
|
97
111
|
|
98
112
|
@wrap.obj(id="request.post")
|
99
|
-
@wrap.obj_args("post", "env, request.session, false", "ref, log", "ref, cache.modify")
|
113
|
+
@wrap.obj_args("post", "env, request.session, false", "ref, log", "ref, cache.modify", "ref, cache", "env, debug, false")
|
100
114
|
class Post(Request):
|
101
115
|
pass
|
102
116
|
|
103
117
|
pass
|
104
118
|
|
105
119
|
@wrap.obj(id="request.json")
|
106
|
-
@wrap.obj_args("json", "env, request.session, false", "ref, log", "ref, cache.modify")
|
120
|
+
@wrap.obj_args("json", "env, request.session, false", "ref, log", "ref, cache.modify", "ref, cache", "env, debug, false")
|
107
121
|
class Json(Request):
|
108
122
|
pass
|
109
123
|
|
110
124
|
pass
|
111
125
|
|
112
126
|
@wrap.obj(id="request.get")
|
113
|
-
@wrap.obj_args("get", "env, request.session, false", "ref, log", "ref, cache.modify")
|
127
|
+
@wrap.obj_args("get", "env, request.session, false", "ref, log", "ref, cache.modify", "ref, cache", "env, debug, false")
|
114
128
|
class Get(Request):
|
115
129
|
pass
|
116
130
|
|
117
131
|
pass
|
118
132
|
|
119
133
|
@wrap.obj(id="request.put")
|
120
|
-
@wrap.obj_args("put", "env, request.session, false", "ref, log", "ref, cache.modify")
|
134
|
+
@wrap.obj_args("put", "env, request.session, false", "ref, log", "ref, cache.modify", "ref, cache", "env, debug, false")
|
121
135
|
class Put(Request):
|
122
136
|
pass
|
123
137
|
|
124
138
|
pass
|
125
139
|
|
126
140
|
@wrap.obj(id="request.delete")
|
127
|
-
@wrap.obj_args("delete", "env, request.session, false", "ref, log", "ref, cache.modify")
|
141
|
+
@wrap.obj_args("delete", "env, request.session, false", "ref, log", "ref, cache.modify", "ref, cache", "env, debug, false")
|
128
142
|
class Delete(Request):
|
129
143
|
pass
|
130
144
|
|
@@ -1,16 +1,27 @@
|
|
1
|
-
{
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
1
|
+
{
|
2
|
+
cache: {
|
3
|
+
path: {
|
4
|
+
current: [
|
5
|
+
null,
|
6
|
+
"D:\\rootz\\python\\gits\\buildz_upd\\buildz\\auto\\test\\data"
|
7
|
+
]
|
8
|
+
}
|
9
|
+
},
|
10
|
+
request: {
|
11
|
+
debug: false
|
12
|
+
},
|
13
|
+
host: www.baidu.com,
|
14
|
+
test: {
|
15
|
+
url: tmpurl,
|
16
|
+
val: 1,
|
17
|
+
code: 1.99
|
18
|
+
},
|
19
|
+
result: {
|
20
|
+
code: 1.99
|
21
|
+
},
|
22
|
+
test2: {
|
23
|
+
headers: {
|
24
|
+
content_type: "text/html; charset=utf-8"
|
25
|
+
}
|
26
|
+
}
|
16
27
|
}
|
@@ -2,9 +2,10 @@ calls: [log, cache, def.deal.type, list, cache.save]
|
|
2
2
|
cache: cache/cache.js
|
3
3
|
cache.save: cache/cache.js
|
4
4
|
log: log/%Y%m%d_log.txt
|
5
|
+
log.shows: [info, warn, debug, error]
|
5
6
|
def.deal: {
|
6
7
|
types: {
|
7
|
-
http.get: [request, verify, save]
|
8
|
-
get: [request.get, verify, save]
|
8
|
+
http.get: [defs, request, verify, save]
|
9
|
+
get: [defs, request.get, verify, save]
|
9
10
|
}
|
10
11
|
}
|
@@ -18,8 +18,12 @@ pass
|
|
18
18
|
from buildz.auto import Run
|
19
19
|
import sys
|
20
20
|
def test():
|
21
|
-
Run()("data/test")
|
21
|
+
rst = Run(init=xf.maps(env_from_args=True))("data/test")
|
22
|
+
print(f"rst: {rst}")
|
22
23
|
|
23
24
|
pass
|
24
25
|
pyz.lc(locals(), test)
|
25
26
|
|
27
|
+
"""
|
28
|
+
python test.py env={debug=true}
|
29
|
+
"""
|
@@ -24,6 +24,20 @@ class SearchResult(Base):
|
|
24
24
|
return self.data()
|
25
25
|
def data(self):
|
26
26
|
return self.arr
|
27
|
+
def text(self):
|
28
|
+
return [it.text for it in self.arr]
|
29
|
+
def texts(self):
|
30
|
+
return [it.texts for it in self.arr]
|
31
|
+
def tag(self):
|
32
|
+
return [it.tag for it in self.arr]
|
33
|
+
def gkey(self, attrs, k):
|
34
|
+
if k is None:
|
35
|
+
return attrs
|
36
|
+
if k in attrs:
|
37
|
+
return attrs[k]
|
38
|
+
return None
|
39
|
+
def attrs(self, k=None):
|
40
|
+
return [self.gkey(it.attrs,k) for it in self.arr]
|
27
41
|
|
28
42
|
pass
|
29
43
|
class HtmlTag:
|
@@ -48,7 +62,7 @@ class HtmlTag:
|
|
48
62
|
else:
|
49
63
|
tp = "="
|
50
64
|
v = pt
|
51
|
-
if val is None and tp
|
65
|
+
if val is None and tp not in ["eval", "exec"]:
|
52
66
|
return False
|
53
67
|
if tp == '>':
|
54
68
|
return val>v
|
@@ -64,24 +78,40 @@ class HtmlTag:
|
|
64
78
|
return len(re.findall(v, val))>0
|
65
79
|
elif tp == 'eval':
|
66
80
|
return eval(v)
|
81
|
+
elif tp == 'exec':
|
82
|
+
exec(v)
|
83
|
+
return self.val
|
67
84
|
else:
|
68
85
|
raise Exception(f"not impl match type: '{tp}'")
|
86
|
+
def get(self, key):
|
87
|
+
ks = key.split(".")
|
88
|
+
v = ks[0]
|
89
|
+
if not hasattr(self, v):
|
90
|
+
return None
|
91
|
+
obj = getattr(self, v)
|
92
|
+
for k in ks[1:]:
|
93
|
+
if type(obj)==dict:
|
94
|
+
if k not in obj:
|
95
|
+
return None
|
96
|
+
obj = obj[k]
|
97
|
+
elif type(obj)==list:
|
98
|
+
k = int(k)
|
99
|
+
if k>=len(obj):
|
100
|
+
return None
|
101
|
+
obj = obj[k]
|
102
|
+
else:
|
103
|
+
return None
|
104
|
+
return obj
|
69
105
|
def check(self, args, maps):
|
70
106
|
#print(f"[TESTZ] check: {maps}, attrs: {self.attrs}")
|
71
107
|
arr = args+list(maps.items())
|
72
108
|
for k,v in arr:
|
73
|
-
if k ==
|
74
|
-
if not self.match(self.tag, v):
|
75
|
-
return False
|
76
|
-
elif k == 'text':
|
77
|
-
if not self.match(self.text, v):
|
78
|
-
return False
|
79
|
-
elif k == "$":
|
109
|
+
if k == "$":
|
80
110
|
if not self.match(None, ["eval", v]):
|
81
111
|
return False
|
82
|
-
|
83
|
-
|
84
|
-
|
112
|
+
val = self.get(k)
|
113
|
+
if not self.match(val, v):
|
114
|
+
return False
|
85
115
|
return True
|
86
116
|
def __init__(self, tag, attrs=None):
|
87
117
|
self.tag = tag
|
@@ -192,6 +192,7 @@ class Confs(Base):
|
|
192
192
|
// -e a=b --env=a=b --env=c=d
|
193
193
|
// env: {a=b, c=d}
|
194
194
|
env_orders: [args, sys, local, conf]
|
195
|
+
env_from_args: false
|
195
196
|
// 命令行读取方式:默认xf(xf.args),可选: buildz(buidlz.argx)
|
196
197
|
args_type: 'xf'
|
197
198
|
// true=类型处理函数deal都是全局的(全局查找),否则优先每个配置文件里查处理函数,查不到才查全局
|
@@ -234,7 +235,12 @@ class Confs(Base):
|
|
234
235
|
self.data_index_type = xf.g(conf, data_index_type = [0,0])
|
235
236
|
self.deal_key_type = xf.g(conf, deal_key_type = 'type')
|
236
237
|
self.deal_index_type = xf.g(conf, deal_index_type = 0)
|
237
|
-
self.env_orders = xf.g(conf, env_orders =
|
238
|
+
self.env_orders = xf.g(conf, env_orders = None)
|
239
|
+
self.env_from_args = xf.g(conf, env_from_args = False)
|
240
|
+
if self.env_orders is None:
|
241
|
+
self.env_orders = ['sys', 'local', 'conf']
|
242
|
+
if self.env_from_args:
|
243
|
+
self.env_orders = ['args', 'sys', 'local', 'conf']
|
238
244
|
self.env_fcs = {
|
239
245
|
'args': self.get_env_args,
|
240
246
|
'sys': self.get_env_sys,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.18
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|