buildz 0.6.32__tar.gz → 0.6.33__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.32/buildz.egg-info → buildz-0.6.33}/PKG-INFO +1 -1
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/log.py +1 -1
- buildz-0.6.33/buildz/db/__init__.py +2 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/basez.py +42 -0
- buildz-0.6.33/buildz/db/dv/orm.py +36 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/structz.py +22 -5
- buildz-0.6.33/buildz/db/tls.py +32 -0
- buildz-0.6.32/buildz/tz/log.py → buildz-0.6.33/buildz/logz.py +37 -10
- buildz-0.6.33/buildz/tools.py +4 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/time/timez.py +1 -1
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/mapz.py +4 -0
- buildz-0.6.33/buildz/xz/__init__.py +1 -0
- buildz-0.6.33/buildz/xz/conf.js +16 -0
- buildz-0.6.33/buildz/xz/data.js +35 -0
- buildz-0.6.33/buildz/xz/test.py +12 -0
- buildz-0.6.33/buildz/xz/trs.py +174 -0
- {buildz-0.6.32 → buildz-0.6.33/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.6.32 → buildz-0.6.33}/buildz.egg-info/SOURCES.txt +10 -2
- {buildz-0.6.32 → buildz-0.6.33}/setup.py +1 -1
- buildz-0.6.32/buildz/tools.py +0 -4
- {buildz-0.6.32 → buildz-0.6.33}/LICENSE +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/MANIFEST.in +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/README.md +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/__main__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/argx.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/cache.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/config.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/dbs.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/deal.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/deal_list.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/deal_type.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/defs.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/factory.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/init.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/request.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/run.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/save.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/cache/cache.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/config/base.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/config/config.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/data/fp.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/data/item1.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/data/item2.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/res/data/test.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/test.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/test/xtest.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/auto/verify.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/cmd.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/__main__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/postgresqlz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/dv/sqlite3z.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/install.txt +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/run.conf +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/db/runz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/test.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/fz/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/fz/fio.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/html/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/html/test/test.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/html/xml.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/init.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc/confs.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/pyz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/test_xfind.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/time/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/tz/xfind.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/__init__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/code.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/file.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/test.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/read.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/readz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/stack.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/write.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.32 → buildz-0.6.33}/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.33
|
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
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import sys
|
2
2
|
from .structz import ItDv
|
3
|
+
from buildz.db import tls
|
3
4
|
def sp(obj):
|
4
5
|
return super(obj.__class__, obj)
|
5
6
|
|
@@ -57,6 +58,47 @@ class SimpleDv(ItDv):
|
|
57
58
|
def execute(self, sql, vals=()):
|
58
59
|
tmp = self.cursor.execute(sql, vals)
|
59
60
|
return tmp
|
61
|
+
def insert_or_update(self, maps, table, keys = None):
|
62
|
+
if type(maps)!=dict:
|
63
|
+
maps = maps.__dict__
|
64
|
+
if keys is None:
|
65
|
+
keys = []
|
66
|
+
if type(keys) not in (list, tuple):
|
67
|
+
keys = [keys]
|
68
|
+
update = False
|
69
|
+
conds = ""
|
70
|
+
if len(keys)>0:
|
71
|
+
need_query = True
|
72
|
+
conds = []
|
73
|
+
for k in keys:
|
74
|
+
if k not in maps:
|
75
|
+
need_query = False
|
76
|
+
break
|
77
|
+
v = maps[k]
|
78
|
+
if type(v)==str:
|
79
|
+
v = f"'{v}'"
|
80
|
+
if v not is None:
|
81
|
+
cond = f"{k} = {v}"
|
82
|
+
else:
|
83
|
+
cond = f"{k} is null"
|
84
|
+
conds.append(cond)
|
85
|
+
if need_query:
|
86
|
+
conds = " and ".join(conds)
|
87
|
+
sql_search = f"select count(*) from {table} where {conds}"
|
88
|
+
rst = self.query(sql_search)[1][0]
|
89
|
+
update = rst>0
|
90
|
+
if update:
|
91
|
+
keys = set(keys)
|
92
|
+
kvs = [[k,tls.py2sql(v)] for k,v in maps.items() if k not in keys]
|
93
|
+
sets = [f"{k}={v}"]
|
94
|
+
sets = ",".join(sets)
|
95
|
+
sql = f"update {table} set {sets} where {conds}"
|
96
|
+
else:
|
97
|
+
kvs = [k, tls.py2sql(v) for k,v in maps.items()]
|
98
|
+
ks = ",".join([kv[0] for kv in kvs])
|
99
|
+
vs = ",".join([kv[1] for kv in kvs])
|
100
|
+
sql = f"insert into {table}({ks}) values({vs});"
|
101
|
+
return self.execute(sql)
|
60
102
|
|
61
103
|
pass
|
62
104
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
|
3
|
+
from buildz import Base
|
4
|
+
from buildz.db import tls
|
5
|
+
class TableObject(Base):
|
6
|
+
def init(self, keys, table=None, translates=None, primary_keys=None, auto_translate=True, dv = None):
|
7
|
+
if table_name is None:
|
8
|
+
table = tls.lower(self.__class__.__name__)
|
9
|
+
self.table = table
|
10
|
+
if translates is None:
|
11
|
+
translates = {}
|
12
|
+
for key in keys:
|
13
|
+
if key not in translates:
|
14
|
+
k_py, k_sql = key,key
|
15
|
+
if auto_translate:
|
16
|
+
k_py,k_sql = tls.upper(key), tls.lower(key)
|
17
|
+
translates[k_py] = k_sql
|
18
|
+
self.translates = translates
|
19
|
+
self.keys = keys
|
20
|
+
if primary_keys is None:
|
21
|
+
primary_keys = []
|
22
|
+
self.primary_keys = primary_keys
|
23
|
+
self.dv = dv
|
24
|
+
def save(self, obj, dv=None):
|
25
|
+
if dv is None:
|
26
|
+
dv = self.dv
|
27
|
+
assert dv is not None
|
28
|
+
if type(obj)!=dict:
|
29
|
+
tmp = {}
|
30
|
+
for k in self.translates:
|
31
|
+
if hasattr(obj, k):
|
32
|
+
tmp[k] = getattr(obj, k)
|
33
|
+
obj = tmp
|
34
|
+
obj = {self.translates[k]:v for k,v in obj.items()}
|
35
|
+
return dv.insert_or_update(obj, self.table, self.primary_keys)
|
36
|
+
|
@@ -1,5 +1,9 @@
|
|
1
1
|
#import pymysql
|
2
2
|
import sys
|
3
|
+
import datetime
|
4
|
+
import decimal
|
5
|
+
from buildz import logz
|
6
|
+
from buildz.db import tls
|
3
7
|
class ItDv:
|
4
8
|
def begin(self):
|
5
9
|
pass
|
@@ -28,10 +32,12 @@ class CMD:
|
|
28
32
|
return self.dv.begin()
|
29
33
|
def close(self):
|
30
34
|
return self.dv.close()
|
31
|
-
def __init__(self, dv, simple_format = True):
|
35
|
+
def __init__(self, dv, simple_format = True, log = None):
|
32
36
|
self.s_rst = ""
|
33
37
|
self.dv = dv
|
34
38
|
self.simple_format = simple_format
|
39
|
+
self.log = logz.make(log)
|
40
|
+
self.insert_or_update = dv.insert_or_update
|
35
41
|
def __enter__(self, *argv, **maps):
|
36
42
|
self.dv.begin()
|
37
43
|
return self
|
@@ -79,9 +85,20 @@ class CMD:
|
|
79
85
|
if type(obj) == decimal.Decimal:
|
80
86
|
obj = str(obj)
|
81
87
|
if type(obj) == bytes:
|
82
|
-
|
88
|
+
for code in "utf-8,gbk".split(","):
|
89
|
+
try:
|
90
|
+
obj = obj.decode(code)
|
91
|
+
break
|
92
|
+
except:
|
93
|
+
continue
|
94
|
+
else:
|
95
|
+
obj = list(obj)
|
96
|
+
#obj = list(obj)[0]
|
83
97
|
import json
|
84
|
-
|
98
|
+
try:
|
99
|
+
rs = json.dumps(obj, ensure_ascii=0)
|
100
|
+
except:
|
101
|
+
rs = json.dumps(str(obj), ensure_ascii=0)
|
85
102
|
return rs
|
86
103
|
def tr_sz(self, s, sz):
|
87
104
|
try:
|
@@ -89,7 +106,7 @@ class CMD:
|
|
89
106
|
s = s+(b" "*(sz-len(s)))
|
90
107
|
s = s.decode("gbk")
|
91
108
|
except Exception as exp:
|
92
|
-
|
109
|
+
self.log.error("TR_SZ exp:", exp)
|
93
110
|
return s
|
94
111
|
def format(self, arr):
|
95
112
|
arr = [[self.rp(k) for k in obj] for obj in arr]
|
@@ -126,7 +143,7 @@ class CMD:
|
|
126
143
|
s = f.read().decode(cd)
|
127
144
|
arr = s.split(";")
|
128
145
|
n = len(arr)
|
129
|
-
|
146
|
+
self.log.info(f"[TESTZ] done fread {fp}: {len(arr)}")
|
130
147
|
i=0
|
131
148
|
for sql in arr:
|
132
149
|
sql=sql.replace("\r","")
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#
|
2
|
+
def lower(val):
|
3
|
+
rst = ""
|
4
|
+
for c in val:
|
5
|
+
if c.lower()!=c:
|
6
|
+
c = "_"+c.lower()
|
7
|
+
rst+=c
|
8
|
+
return rst
|
9
|
+
pass
|
10
|
+
def upper(val):
|
11
|
+
rst = ""
|
12
|
+
mark_up = False
|
13
|
+
for c in val:
|
14
|
+
if c == "_":
|
15
|
+
mark_up = True
|
16
|
+
continue
|
17
|
+
if mark_up:
|
18
|
+
c = c.upper()
|
19
|
+
rst+=c
|
20
|
+
return rst
|
21
|
+
pass
|
22
|
+
def py2sql(val):
|
23
|
+
if val is None:
|
24
|
+
return 'null'
|
25
|
+
if type(val)==str:
|
26
|
+
return f"'{val}'"
|
27
|
+
if type(val) == datetime.datetime:
|
28
|
+
val = str(val)
|
29
|
+
if type(val) == decimal.Decimal:
|
30
|
+
val = str(val)
|
31
|
+
return val
|
32
|
+
pass
|
@@ -1,11 +1,10 @@
|
|
1
1
|
#
|
2
2
|
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
8
|
-
from ..tools import *
|
4
|
+
from . import xf, ioc, fz
|
5
|
+
from .base import Base
|
6
|
+
from .ioc import wrap
|
7
|
+
#from .tools import *
|
9
8
|
import time, sys
|
10
9
|
class Log(Base):
|
11
10
|
def tag(self, _tag):
|
@@ -56,13 +55,14 @@ def mstr(s):
|
|
56
55
|
if s is None or len(s)==0:
|
57
56
|
return s
|
58
57
|
return s[:1].upper()+s[1:].lower()
|
59
|
-
class
|
60
|
-
def init(self,
|
58
|
+
class FormatLog(Log):
|
59
|
+
def init(self, shows =None, tag=None, format=None):
|
61
60
|
if format is None:
|
62
61
|
format = "[{LEVEL}] %Y-%m-%d %H:%M:%S {tag} {msg}\n"
|
63
62
|
self.format=format
|
64
63
|
super().init(shows, tag)
|
65
|
-
|
64
|
+
def output(self, msg):
|
65
|
+
raise Exception("impl")
|
66
66
|
def log(self, level, tag, *args):
|
67
67
|
m_level = level.lower()
|
68
68
|
u_level = level.upper()
|
@@ -73,8 +73,12 @@ class FpLog(Log):
|
|
73
73
|
tag = "base"
|
74
74
|
rst = time.strftime(self.format, time.localtime(time.time()))
|
75
75
|
msg = replaces(rst, "{Level}", x_level, "{level}", m_level, "{LEVEL}", u_level, "{tag}", tag, "{msg}", msg)
|
76
|
-
|
77
|
-
|
76
|
+
self.output(msg)
|
77
|
+
class FpLog(FormatLog):
|
78
|
+
def init(self, fp = None,shows =None, tag=None, format=None):
|
79
|
+
super().init(shows, tag, format)
|
80
|
+
self.fp = fp
|
81
|
+
def output(self, msg):
|
78
82
|
sys.stdout.write(msg)
|
79
83
|
if self.fp is not None:
|
80
84
|
fp = time.strftime(self.fp)
|
@@ -82,3 +86,26 @@ class FpLog(Log):
|
|
82
86
|
fz.write(msg.encode("utf-8"), fp, 'ab')
|
83
87
|
|
84
88
|
pass
|
89
|
+
class StdLog(FormatLog):
|
90
|
+
def output(self, msg):
|
91
|
+
sys.stdout.write(msg)
|
92
|
+
|
93
|
+
pass
|
94
|
+
|
95
|
+
class Logs(Log):
|
96
|
+
def init(self, logs, shows = None, tag= None):
|
97
|
+
super().init(shows, tag)
|
98
|
+
self.logs = logs
|
99
|
+
def log(self, level, tag, *args):
|
100
|
+
for _log in self.logs:
|
101
|
+
_log.log(level, tag, *args)
|
102
|
+
|
103
|
+
pass
|
104
|
+
|
105
|
+
def build(obj=None, shows=None, tag=None, format=None):
|
106
|
+
if obj is None:
|
107
|
+
return StdLog(shows, tag, format)
|
108
|
+
return obj
|
109
|
+
|
110
|
+
pass
|
111
|
+
make=build
|
@@ -0,0 +1 @@
|
|
1
|
+
from .trs import Translate
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
data: {
|
3
|
+
total: 1024
|
4
|
+
diff: [
|
5
|
+
{
|
6
|
+
var0: 001
|
7
|
+
var1: 测试
|
8
|
+
var2: 100
|
9
|
+
var3: 1000
|
10
|
+
var4: 1e2
|
11
|
+
}
|
12
|
+
{
|
13
|
+
var0: 002
|
14
|
+
var1: 测试
|
15
|
+
var2: 102
|
16
|
+
var3: 1002
|
17
|
+
var4: 2e3
|
18
|
+
}
|
19
|
+
{
|
20
|
+
var0: 003
|
21
|
+
var1: 测试
|
22
|
+
var2: 300
|
23
|
+
var3: 3000
|
24
|
+
var4: 3e4
|
25
|
+
}
|
26
|
+
{
|
27
|
+
var0: 004
|
28
|
+
var1: 测试
|
29
|
+
var2: 104
|
30
|
+
var3: 1004
|
31
|
+
var4: 4e5
|
32
|
+
}
|
33
|
+
]
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,174 @@
|
|
1
|
+
|
2
|
+
from buildz import xf, Base
|
3
|
+
class Translate(Base):
|
4
|
+
"""
|
5
|
+
conf:
|
6
|
+
main: [
|
7
|
+
null, mdict
|
8
|
+
[
|
9
|
+
|
10
|
+
]
|
11
|
+
]
|
12
|
+
main: [
|
13
|
+
[data.total, total] // [data.total, total, key]
|
14
|
+
[data.diff, datas, list, translates]
|
15
|
+
]
|
16
|
+
or:
|
17
|
+
main: {
|
18
|
+
data.total: total
|
19
|
+
data.diff: [datas, list, translates]
|
20
|
+
}
|
21
|
+
translates: {
|
22
|
+
...
|
23
|
+
}
|
24
|
+
"""
|
25
|
+
def init(self, conf, src_spt=".",dst_spt = ".", inline = False, remove_src = False, vars = None):
|
26
|
+
self.conf = conf
|
27
|
+
self.src_spt = src_spt
|
28
|
+
self.dst_spt = dst_spt
|
29
|
+
self.inline = inline
|
30
|
+
self.remove_src = remove_src
|
31
|
+
self.cache_conf = {}
|
32
|
+
self.vars = vars
|
33
|
+
def kfc(self, fckey, val, vars=None):
|
34
|
+
fc = self.var(fckey, vars)
|
35
|
+
return fc(val)
|
36
|
+
def var(self, key, vars=None):
|
37
|
+
#print(f"[TESTZ] vars: {vars}")
|
38
|
+
if vars is None:
|
39
|
+
vars = self.vars
|
40
|
+
#print(f"[TESTZ] vars: {vars}")
|
41
|
+
if vars is None:
|
42
|
+
raise Exception(f"var not found: {key}")
|
43
|
+
if type(vars)==dict:
|
44
|
+
if key not in vars:
|
45
|
+
raise Exception(f"var not found: {key}")
|
46
|
+
return vars[key]
|
47
|
+
if callable(vars):
|
48
|
+
return vars(key)
|
49
|
+
return vars.get(key)
|
50
|
+
def call(self, data, key = "main", vars=None):
|
51
|
+
trs = xf.get(self.conf, key)
|
52
|
+
#print(f"[TESTZ] trs: {trs}")
|
53
|
+
trs = expand(trs)
|
54
|
+
#print(f"[TESTZ] expand.trs: {trs}")
|
55
|
+
return self.deal(data, trs,vars)
|
56
|
+
def conf_get(self, key):
|
57
|
+
if key in self.cache_conf:
|
58
|
+
return self.cache_conf[key]
|
59
|
+
assert key in self.conf
|
60
|
+
rst = self.conf[key]
|
61
|
+
rst = dict2list(rst)
|
62
|
+
self.cache_conf[key] = rst
|
63
|
+
return rst
|
64
|
+
def src_get(self, data, key):
|
65
|
+
if self.src_spt is not None:
|
66
|
+
key = key.split(self.src_spt)
|
67
|
+
return xf.gets(data, key)
|
68
|
+
def dst_set(self, data, key, val):
|
69
|
+
#print(f"[TESTZ] key: {key}")
|
70
|
+
if self.dst_spt is not None:
|
71
|
+
key = key.split(self.dst_spt)
|
72
|
+
return xf.sets(data, key, val)
|
73
|
+
def src_has(self, data, key):
|
74
|
+
if self.src_spt is not None:
|
75
|
+
key = key.split(self.src_spt)
|
76
|
+
return xf.has(data, key)
|
77
|
+
def src_remove(self, data, key):
|
78
|
+
if self.src_spt is not None:
|
79
|
+
key = key.split(self.src_spt)
|
80
|
+
return xf.removes(data, key)
|
81
|
+
def get_type(self, trs):
|
82
|
+
if len(trs)==2:
|
83
|
+
if type(trs[1]) not in (list, dict):
|
84
|
+
return "key"
|
85
|
+
return trs[0]
|
86
|
+
return trs[2]
|
87
|
+
def deal(self, data, trs, vars=None):
|
88
|
+
"""
|
89
|
+
type: key,
|
90
|
+
conf = [
|
91
|
+
key, target_key, type, info
|
92
|
+
]
|
93
|
+
key: return [target_key, target_val, exists]
|
94
|
+
"""
|
95
|
+
# trs = xf.get(conf, key)
|
96
|
+
# trs = dict2list(trs)
|
97
|
+
_type = self.get_type(trs)
|
98
|
+
#print(f"[TESTZ] deal.trs: {trs}")
|
99
|
+
if _type in ("list", "dict"):
|
100
|
+
info = trs[-1]
|
101
|
+
if type(info) == str:
|
102
|
+
info = self.conf_get(info)
|
103
|
+
trs[-1] = info
|
104
|
+
if _type == "list":
|
105
|
+
_trs = trs[-1]
|
106
|
+
_trs = expand(_trs)
|
107
|
+
if self.inline:
|
108
|
+
rst = data
|
109
|
+
else:
|
110
|
+
rst = [None]*len(data)
|
111
|
+
for i in range(len(data)):
|
112
|
+
dt = data[i]
|
113
|
+
_rst = self.deal(dt, _trs, vars)
|
114
|
+
rst[i] = _rst
|
115
|
+
elif _type == "dict":
|
116
|
+
if self.inline:
|
117
|
+
rst = data
|
118
|
+
else:
|
119
|
+
rst = {}
|
120
|
+
for _trs in trs[-1]:
|
121
|
+
#print(f"[TESTZ] _trs: {_trs}")
|
122
|
+
_trs = expand(_trs)
|
123
|
+
#print(f"[TESTZ] expand_trs: {_trs}")
|
124
|
+
src_key, target_key = _trs[:2]
|
125
|
+
_ctype = self.get_type(_trs)
|
126
|
+
if _ctype == "val":
|
127
|
+
_rst = _trs[3]
|
128
|
+
elif _ctype == "var":
|
129
|
+
_rst = self.var(_trs[3], vars)
|
130
|
+
else:
|
131
|
+
if not self.src_has(data, src_key):
|
132
|
+
continue
|
133
|
+
val = self.src_get(data, src_key)
|
134
|
+
if _ctype == "key":
|
135
|
+
_rst = val
|
136
|
+
elif _ctype == "kfc":
|
137
|
+
_rst = self.kfc(_trs[3], val, vars)
|
138
|
+
else:
|
139
|
+
_rst = self.deal(val, _trs, vars)
|
140
|
+
if self.inline and self.remove_src and _ctype not in ("val", "var"):
|
141
|
+
self.src_remove(data, src_key)
|
142
|
+
#del data[src_key]
|
143
|
+
self.dst_set(rst, target_key, _rst)
|
144
|
+
#rst[target_key] = _rst
|
145
|
+
else:
|
146
|
+
raise Exception("error")
|
147
|
+
return rst
|
148
|
+
def dict2list(trs):
|
149
|
+
if type(trs)==dict:
|
150
|
+
tmp = []
|
151
|
+
for k,v in trs.items():
|
152
|
+
if type(v) not in [list, tuple]:
|
153
|
+
v = [v]
|
154
|
+
if type(v)==tuple:
|
155
|
+
v = list(v)
|
156
|
+
if len(v)==1:
|
157
|
+
v = v+["key"]
|
158
|
+
v = [k]+v
|
159
|
+
tmp.append(v)
|
160
|
+
trs = tmp
|
161
|
+
return trs
|
162
|
+
def expand(trs):
|
163
|
+
trs = dict2list(trs)
|
164
|
+
if len(trs)>0:
|
165
|
+
k = trs[0]
|
166
|
+
if type(k) in (list, tuple):
|
167
|
+
trs = ['dict', trs]
|
168
|
+
if len(trs)>1:
|
169
|
+
val = trs[-1]
|
170
|
+
if type(val)==dict:
|
171
|
+
trs[-1] = dict2list(val)
|
172
|
+
return trs
|
173
|
+
|
174
|
+
pass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.33
|
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
|
@@ -7,6 +7,7 @@ buildz/__main__.py
|
|
7
7
|
buildz/argx.py
|
8
8
|
buildz/base.py
|
9
9
|
buildz/cmd.py
|
10
|
+
buildz/logz.py
|
10
11
|
buildz/pyz.py
|
11
12
|
buildz/tools.py
|
12
13
|
buildz.egg-info/PKG-INFO
|
@@ -37,15 +38,18 @@ buildz/auto/test/res/data/fp.js
|
|
37
38
|
buildz/auto/test/res/data/item1.js
|
38
39
|
buildz/auto/test/res/data/item2.js
|
39
40
|
buildz/auto/test/res/data/test.js
|
41
|
+
buildz/db/__init__.py
|
40
42
|
buildz/db/__main__.py
|
41
43
|
buildz/db/install.txt
|
42
44
|
buildz/db/run.conf
|
43
45
|
buildz/db/runz.py
|
46
|
+
buildz/db/tls.py
|
44
47
|
buildz/db/dv/__init__.py
|
45
48
|
buildz/db/dv/basez.py
|
46
49
|
buildz/db/dv/clickhousez.py
|
47
50
|
buildz/db/dv/mysqlz.py
|
48
51
|
buildz/db/dv/oraclez.py
|
52
|
+
buildz/db/dv/orm.py
|
49
53
|
buildz/db/dv/postgresqlz.py
|
50
54
|
buildz/db/dv/sqlite3z.py
|
51
55
|
buildz/db/dv/structz.py
|
@@ -135,7 +139,6 @@ buildz/ioc/ioc_deal/conf/var_lists.js
|
|
135
139
|
buildz/ioc/ioc_deal/conf/xfile_defaults.js
|
136
140
|
buildz/ioc/ioc_deal/conf/xfile_lists.js
|
137
141
|
buildz/tz/__init__.py
|
138
|
-
buildz/tz/log.py
|
139
142
|
buildz/tz/myers_diff.py
|
140
143
|
buildz/tz/test_xfind.py
|
141
144
|
buildz/tz/xfind.py
|
@@ -204,4 +207,9 @@ buildz/xf/writer/deal/jsonval.py
|
|
204
207
|
buildz/xf/writer/deal/listz.py
|
205
208
|
buildz/xf/writer/deal/mapz.py
|
206
209
|
buildz/xf/writer/deal/reval.py
|
207
|
-
buildz/xf/writer/deal/strz.py
|
210
|
+
buildz/xf/writer/deal/strz.py
|
211
|
+
buildz/xz/__init__.py
|
212
|
+
buildz/xz/conf.js
|
213
|
+
buildz/xz/data.js
|
214
|
+
buildz/xz/test.py
|
215
|
+
buildz/xz/trs.py
|
buildz-0.6.32/buildz/tools.py
DELETED
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
|