buildz 0.6.44__tar.gz → 0.6.46__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.46/MANIFEST.in +3 -0
- {buildz-0.6.44/buildz.egg-info → buildz-0.6.46}/PKG-INFO +1 -28
- {buildz-0.6.44 → buildz-0.6.46}/README.md +0 -27
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/argz.py +17 -8
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/build.py +11 -3
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/callz.py +15 -1
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/tests/conf.js +3 -3
- buildz-0.6.46/buildz/argz/testx.py +42 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/base.py +28 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/fz/__init__.py +1 -1
- {buildz-0.6.44 → buildz-0.6.46}/buildz/fz/fio.py +56 -10
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc/confs.py +20 -14
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc/loads.py +8 -3
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/ref.py +1 -0
- buildz-0.6.46/buildz/iocz/base.py +6 -0
- buildz-0.6.46/buildz/iocz/ioc/base.py +5 -0
- buildz-0.6.46/buildz/iocz/ioc/confs.py +5 -0
- buildz-0.6.46/buildz/iocz/ioc/env.py +117 -0
- buildz-0.6.46/buildz/iocz/ioc/ids.py +23 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/pathz.py +11 -2
- {buildz-0.6.44 → buildz-0.6.46}/buildz/pyz.py +67 -3
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/time/timez.py +1 -1
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/mapz.py +52 -10
- {buildz-0.6.44 → buildz-0.6.46/buildz.egg-info}/PKG-INFO +1 -28
- {buildz-0.6.44 → buildz-0.6.46}/buildz.egg-info/SOURCES.txt +8 -1
- buildz-0.6.46/notes/notes.txt +1 -0
- {buildz-0.6.44 → buildz-0.6.46}/setup.py +1 -1
- buildz-0.6.44/MANIFEST.in +0 -2
- {buildz-0.6.44 → buildz-0.6.46}/LICENSE +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/__main__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argx.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/evalx.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/argz/test_obj.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/cache.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/config.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/dbs.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/deal.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/deal_list.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/deal_type.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/defs.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/factory.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/init.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/log.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/request.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/run.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/save.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/cache/cache.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/config/base.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/config/config.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/data/fp.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/data/item1.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/data/item2.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/res/data/test.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/test/xtest.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/auto/verify.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/cachez/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/cachez/cache.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/cmd.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/confz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/__main__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/basez.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/orm.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/postgresqlz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/sqlite3z.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/dv/structz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/install.txt +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/run.conf +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/runz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/db/tls.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/evalz/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/evalz/evalz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/evalz/res/default.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/evalz/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/html/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/html/test/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/html/xml.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/init.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/logz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tools.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/test_xfind.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/time/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/tz/xfind.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/code.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/file.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/buffer.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/spc.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/strz_new.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/deal/strz_old.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/exp.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/item.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/mg.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/pos.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/loaderz_nexp/test1.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/read.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/readz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/readz_nexp.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/stack.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/write.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/deal/listmapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/base.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/conf.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/deal/jsonval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/deal/listmapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/deal/listz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/deal/mapz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/deal/reval.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/deal/strz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/itemz.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/mg.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writerz/testx.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/writez.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xz/__init__.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xz/conf.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xz/data.js +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xz/test.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz/xz/trs.py +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.44 → buildz-0.6.46}/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.46
|
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
|
@@ -37,33 +37,6 @@ Codes of this project are not allowed to be used for AI training or any other fo
|
|
37
37
|
|
38
38
|
运行python -m buildz查看帮助
|
39
39
|
|
40
|
-
持续更新中。。。
|
41
|
-
2025/01/21:
|
42
|
-
修改xf的读写,读加上报错字符串位置,写改成递归调用减少时间开销
|
43
|
-
2025/01/17:
|
44
|
-
加了argz模块和evalz模块
|
45
|
-
argz模块用于命令行参数匹配
|
46
|
-
evalz模块用于可配置真假判断
|
47
|
-
命令行还差一个入参转map的
|
48
|
-
2024/12/22:
|
49
|
-
增加pathz模块,方便处理路径,修改ioc和db
|
50
|
-
2024/12/18:
|
51
|
-
增加数据映射xz,数据库db增加类似orm功能以及表和索引结构查询功能(目前只写了mysql,oracle,sqlite3的查询),配置文件读写xf的输出增加对ListMap的支持(dumpx, dumpxf)
|
52
|
-
2024/11/11:
|
53
|
-
新增buildz.tz.xfind,对json做查询用的,功能类似jsonpath,自己实现的原因是好玩,以及不想为了用jsonpath去学对应的语法
|
54
|
-
2024/10/08:
|
55
|
-
增强auto配置功能,在auto增加数据库使用的封装,后续考虑出文档。。。如果有时间
|
56
|
-
2024/09/25:
|
57
|
-
修复bug,增强html的搜索功能,增强auto配置功能
|
58
|
-
auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
|
59
|
-
2024/09/24:
|
60
|
-
增加模块html:html页面解析
|
61
|
-
增加模块auto:自动化调用
|
62
|
-
|
63
|
-
2024/09/09
|
64
|
-
ioc:
|
65
|
-
加修饰器
|
66
|
-
加配置refs
|
67
40
|
|
68
41
|
PS: 对比了下json.loads(修改了下json的scanner.py,让它在纯python下运行,不然json.loads会更快)和目前的xf.loads(buildz.xf.readz.loads)的速度,xf.loads比json.loads慢7倍,可能是读字符串更频繁,方法调用更多(为了代码更结构化和容易修改),其实有一版更慢(buildz.xf.read.loads,废弃代码,后面看情况删掉),慢100倍,因为只考虑结构化,没考虑列表增减开销(获得的经验教训是别直接用python的列表list当堆栈做append和pop,特别慢!)
|
69
42
|
|
@@ -24,33 +24,6 @@ Codes of this project are not allowed to be used for AI training or any other fo
|
|
24
24
|
|
25
25
|
运行python -m buildz查看帮助
|
26
26
|
|
27
|
-
持续更新中。。。
|
28
|
-
2025/01/21:
|
29
|
-
修改xf的读写,读加上报错字符串位置,写改成递归调用减少时间开销
|
30
|
-
2025/01/17:
|
31
|
-
加了argz模块和evalz模块
|
32
|
-
argz模块用于命令行参数匹配
|
33
|
-
evalz模块用于可配置真假判断
|
34
|
-
命令行还差一个入参转map的
|
35
|
-
2024/12/22:
|
36
|
-
增加pathz模块,方便处理路径,修改ioc和db
|
37
|
-
2024/12/18:
|
38
|
-
增加数据映射xz,数据库db增加类似orm功能以及表和索引结构查询功能(目前只写了mysql,oracle,sqlite3的查询),配置文件读写xf的输出增加对ListMap的支持(dumpx, dumpxf)
|
39
|
-
2024/11/11:
|
40
|
-
新增buildz.tz.xfind,对json做查询用的,功能类似jsonpath,自己实现的原因是好玩,以及不想为了用jsonpath去学对应的语法
|
41
|
-
2024/10/08:
|
42
|
-
增强auto配置功能,在auto增加数据库使用的封装,后续考虑出文档。。。如果有时间
|
43
|
-
2024/09/25:
|
44
|
-
修复bug,增强html的搜索功能,增强auto配置功能
|
45
|
-
auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
|
46
|
-
2024/09/24:
|
47
|
-
增加模块html:html页面解析
|
48
|
-
增加模块auto:自动化调用
|
49
|
-
|
50
|
-
2024/09/09
|
51
|
-
ioc:
|
52
|
-
加修饰器
|
53
|
-
加配置refs
|
54
27
|
|
55
28
|
PS: 对比了下json.loads(修改了下json的scanner.py,让它在纯python下运行,不然json.loads会更快)和目前的xf.loads(buildz.xf.readz.loads)的速度,xf.loads比json.loads慢7倍,可能是读字符串更频繁,方法调用更多(为了代码更结构化和容易修改),其实有一版更慢(buildz.xf.read.loads,废弃代码,后面看情况删掉),慢100倍,因为只考虑结构化,没考虑列表增减开销(获得的经验教训是别直接用python的列表list当堆栈做append和pop,特别慢!)
|
56
29
|
|
@@ -103,12 +103,18 @@ class ArgItem(Base):
|
|
103
103
|
find = False
|
104
104
|
for key, vtype in self.trs:
|
105
105
|
if vtype =="dict":
|
106
|
-
if key
|
107
|
-
val = maps
|
106
|
+
if xf.dhas(maps, key):
|
107
|
+
val = xf.dget(maps, key)
|
108
108
|
if self.remove:
|
109
|
-
|
110
|
-
find
|
109
|
+
xf.dremove(maps, key)
|
110
|
+
find=True
|
111
111
|
break
|
112
|
+
#if key in maps:
|
113
|
+
# val = maps[key]
|
114
|
+
# if self.remove:
|
115
|
+
# del maps[key]
|
116
|
+
# find = True
|
117
|
+
# break
|
112
118
|
else:
|
113
119
|
if key in set_args:
|
114
120
|
val = args[key]
|
@@ -123,7 +129,8 @@ class ArgItem(Base):
|
|
123
129
|
if not find and self.need:
|
124
130
|
raise ArgExp("need", set(self.trs), self.des)
|
125
131
|
if self.vtype == 'dict':
|
126
|
-
rst_maps
|
132
|
+
xf.dset(rst_maps, self.key, val)
|
133
|
+
#rst_maps[self.key] = val
|
127
134
|
else:
|
128
135
|
rst_args[self.key] = val
|
129
136
|
|
@@ -135,9 +142,11 @@ class ArgItemBuild(build.Build):
|
|
135
142
|
value = xf.g(conf, value=None)
|
136
143
|
des = xf.g(conf, des=None)
|
137
144
|
remove = xf.g(conf, remove=True)
|
138
|
-
src = conf
|
139
|
-
|
140
|
-
|
145
|
+
src = xf.g(conf, src=None)
|
146
|
+
srcs = xf.g(conf, srcs = [])
|
147
|
+
if src is not None:
|
148
|
+
srcs.append(src)
|
149
|
+
src = srcs
|
141
150
|
item = ArgItem(key, vtype, need, default, value, des, remove)
|
142
151
|
for s in src:
|
143
152
|
if type(s) not in (list, tuple):
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
from buildz import Base, xf
|
2
|
+
from buildz import Base, xf,pyz
|
3
3
|
class Build(Base):
|
4
4
|
def init(self, *binds):
|
5
5
|
self.builder = None
|
@@ -11,10 +11,11 @@ class Build(Base):
|
|
11
11
|
def call(self, conf):
|
12
12
|
assert 0, 'not impl'
|
13
13
|
class Builder(Base):
|
14
|
-
def init(self, fc = None, key_id = "id"):
|
14
|
+
def init(self, fc = None, key_id = "id", default_key = "main"):
|
15
15
|
self.vars = {}
|
16
16
|
self.confs = {}
|
17
17
|
self.key_id = key_id
|
18
|
+
self.df_key = default_key
|
18
19
|
self.set_fc(fc)
|
19
20
|
def set_fc(self, fc):
|
20
21
|
fc.bind(self)
|
@@ -34,6 +35,12 @@ class Builder(Base):
|
|
34
35
|
conf = self.confs[key]
|
35
36
|
return self.fc(conf)
|
36
37
|
def conf(self, data):
|
38
|
+
if type(data) == dict:
|
39
|
+
tp = xf.g(data, type=None)
|
40
|
+
if tp is not None and type(tp) not in (list, tuple, dict):
|
41
|
+
if self.key_id not in data:
|
42
|
+
data[self.key_id] = self.df_key
|
43
|
+
data = [data]
|
37
44
|
if type(data) in (list, tuple):
|
38
45
|
rst = {}
|
39
46
|
for it in data:
|
@@ -44,5 +51,6 @@ class Builder(Base):
|
|
44
51
|
data = rst
|
45
52
|
self.confs = data
|
46
53
|
return self
|
47
|
-
def call(self, data, key=
|
54
|
+
def call(self, data, key=None):
|
55
|
+
key = pyz.nnull(key, self.df_key)
|
48
56
|
return self.conf(data).get_conf(key)
|
@@ -14,6 +14,9 @@ class Fc(Base):
|
|
14
14
|
if isinstance(fc, Fc):
|
15
15
|
return fc
|
16
16
|
return Fc(fc)
|
17
|
+
class RetFc(Fc):
|
18
|
+
def call(self, args, maps):
|
19
|
+
return args, maps
|
17
20
|
class ArgsCall(Fc):
|
18
21
|
def init(self, fc, args=None, name = None):
|
19
22
|
fc=self.make(fc)
|
@@ -88,23 +91,34 @@ class FcBuild(build.Build):
|
|
88
91
|
src = xf.g(conf, src = None)
|
89
92
|
fc = self.builder.get_var(src)
|
90
93
|
return Fc(fc)
|
94
|
+
class RetBuild(build.Build):
|
95
|
+
def call(self, conf):
|
96
|
+
ctype = xf.g(conf, type=None)
|
97
|
+
if ctype != "ret":
|
98
|
+
return None
|
99
|
+
return RetFc()
|
91
100
|
class CallBuild(build.Build):
|
92
101
|
def init(self):
|
93
102
|
self.args = argz.ArrArgsBuild()
|
94
103
|
self.eval = evalx.EvalBuild()
|
95
104
|
self.fc = FcBuild()
|
96
105
|
self.calls = CallsBuild()
|
106
|
+
self.ret = RetBuild()
|
97
107
|
super().init(self.args, self.eval, self.fc, self.calls)
|
98
108
|
def call(self, conf):
|
99
109
|
args = self.args(conf)
|
100
110
|
judges = self.eval(conf)
|
101
111
|
fc = self.fc(conf)
|
102
112
|
calls = self.calls(conf)
|
113
|
+
ret = self.ret(conf)
|
103
114
|
bfc = fc is None
|
104
115
|
bcls = calls is None
|
105
|
-
|
116
|
+
bret = ret is None
|
117
|
+
assert (bfc+bcls+bret)==2
|
106
118
|
if fc is None:
|
107
119
|
fc = calls
|
120
|
+
if fc is None:
|
121
|
+
fc = ret
|
108
122
|
if args is not None:
|
109
123
|
fc = ArgsCall(fc, args)
|
110
124
|
if judges is not None:
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from buildz import argz,xf,Base,evalz,pathz
|
2
|
+
import sys,os
|
3
|
+
|
4
|
+
path = pathz.Path()
|
5
|
+
path.set("res", path(path.dir(__file__), "tests"))
|
6
|
+
conf = xf.loadf(path.res("conf.js"))
|
7
|
+
conf=xf.loads(r"""
|
8
|
+
type=ret
|
9
|
+
maps={
|
10
|
+
spt: {
|
11
|
+
src: [(env, spt), d]
|
12
|
+
default: 1
|
13
|
+
value: '.'
|
14
|
+
}
|
15
|
+
eglobal: {
|
16
|
+
src: [(env, global), d]
|
17
|
+
default:1
|
18
|
+
value: true
|
19
|
+
}
|
20
|
+
}
|
21
|
+
""")
|
22
|
+
|
23
|
+
mg = argz.CallBuilder()
|
24
|
+
fc = mg(conf)
|
25
|
+
|
26
|
+
data = xf.loads(r"""
|
27
|
+
args=[]
|
28
|
+
maps={
|
29
|
+
env: {
|
30
|
+
spt: x
|
31
|
+
}
|
32
|
+
}
|
33
|
+
""")
|
34
|
+
args = xf.g(data, args=[])
|
35
|
+
maps = xf.g(data, maps={})
|
36
|
+
|
37
|
+
rst = fc(args, maps)
|
38
|
+
print(f"rst: {rst}")
|
39
|
+
'''
|
40
|
+
python -m buildz.argz.testx
|
41
|
+
python -m buildz.argz.test search /d/rootz f=asf c=test
|
42
|
+
'''
|
@@ -1,5 +1,33 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from . import pyz
|
3
|
+
def fcBase(cls, lst=0, keys = tuple()):
|
4
|
+
class _Base(cls):
|
5
|
+
def str(self):
|
6
|
+
return str(self.__class__)
|
7
|
+
def repr(self):
|
8
|
+
return self.str()
|
9
|
+
def __str__(self):
|
10
|
+
return self.str()
|
11
|
+
def __repr__(self):
|
12
|
+
return self.repr()
|
13
|
+
def __call__(self, *a, **b):
|
14
|
+
return self.call(*a, **b)
|
15
|
+
def call(self, *a, **b):
|
16
|
+
return None
|
17
|
+
def init(self, *a, **b):
|
18
|
+
pass
|
19
|
+
def __init__(self, *a, **b):
|
20
|
+
sa = a[:lst]
|
21
|
+
a = a[lst:]
|
22
|
+
sb = {}
|
23
|
+
for k in keys:
|
24
|
+
if k in b:
|
25
|
+
sb[k] = b[k]
|
26
|
+
del b[k]
|
27
|
+
super().__init__(*sa, **sb)
|
28
|
+
self.init(*a, **b)
|
29
|
+
return _Base
|
30
|
+
|
3
31
|
class Base:
|
4
32
|
def str(self):
|
5
33
|
return str(self.__class__)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#author:
|
3
3
|
from .dirz import dirs, FileDeal
|
4
4
|
from .lsf import lists, search, searchd,searchs,_search
|
5
|
-
from .fio import fread, freads, fwrite, fwrites, read,reads,write,writes, makefdir, dirpath,makedir,removes, cover, fcover, sread, swrite, is_abs
|
5
|
+
from .fio import fread, freads, fwrite, fwrites, read,reads,write,writes, makefdir, dirpath,makedir,removes, cover, fcover, sread, swrite, is_abs, xors, fxors, coverx, covers, fcovers
|
6
6
|
from .fhs import fhash, fhashs
|
7
7
|
|
8
8
|
__author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
|
@@ -56,23 +56,37 @@ pass
|
|
56
56
|
|
57
57
|
dirname = dirpath
|
58
58
|
|
59
|
-
def
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
59
|
+
def coverx(sz, chars=None):
|
60
|
+
if chars is None:
|
61
|
+
chars = b"a"
|
62
|
+
if type(chars)==str:
|
63
|
+
chars = chars.encode("utf-8")
|
64
|
+
l = sz//len(chars)
|
65
|
+
cs = chars*l
|
66
|
+
left = sz%len(chars)
|
67
|
+
cs+=chars[:left]
|
68
|
+
return cs
|
69
|
+
def fcover(filepath, wsize = 1024*10, chars=None):
|
70
|
+
st = os.stat(filepath)
|
71
|
+
size = st.st_size
|
72
|
+
#print(f"{filepath}:{size}")
|
73
|
+
#bs = b'a'*wsize
|
74
|
+
with open(filepath, 'wb') as f:
|
75
|
+
for i in range(0, size, wsize):
|
76
|
+
sz = min(size-i, wsize)
|
77
|
+
bs = coverx(sz, chars)
|
78
|
+
#print(f"bs: {len(bs)}, sz: {sz}, i:{i}, wsize:{wsize}")
|
79
|
+
f.write(bs)
|
66
80
|
|
67
81
|
pass
|
68
82
|
cover = fcover
|
69
|
-
def removes(fp, cover = False):
|
83
|
+
def removes(fp, cover = False,wsize = 1024*10,chars=None):
|
70
84
|
if not os.path.exists(fp):
|
71
85
|
return
|
72
86
|
if os.path.isfile(fp):
|
73
87
|
#print(f"remove file '{fp}'")
|
74
88
|
if cover:
|
75
|
-
fcover(fp)
|
89
|
+
fcover(fp,wsize=wsize, chars=chars)
|
76
90
|
os.remove(fp)
|
77
91
|
return
|
78
92
|
fps = os.listdir(fp)
|
@@ -123,4 +137,36 @@ def is_abs(fp):
|
|
123
137
|
return False
|
124
138
|
|
125
139
|
pass
|
126
|
-
|
140
|
+
|
141
|
+
def xors(bs, codes):
|
142
|
+
if type(codes)==str:
|
143
|
+
codes = codes.encode("utf-8")
|
144
|
+
rst = b''
|
145
|
+
codes= list(codes)
|
146
|
+
for i in range(0, len(bs), len(codes)):
|
147
|
+
_bs = bs[i:i+len(codes)]
|
148
|
+
rs = bytes([a^b for a,b in zip(_bs, codes)])
|
149
|
+
rst+=rs
|
150
|
+
codes = codes[1:]+codes[:1]
|
151
|
+
return rst
|
152
|
+
|
153
|
+
def fxors(fp, codes, ofp=None):
|
154
|
+
bs = read(fp, 'rb')
|
155
|
+
bs = xors(bs, codes)
|
156
|
+
if ofp is not None:
|
157
|
+
write(bs, ofp, 'wb')
|
158
|
+
else:
|
159
|
+
return bs
|
160
|
+
|
161
|
+
pass
|
162
|
+
def covers(dp, chars=None,wsize = 1024*10,):
|
163
|
+
if not os.path.exists(dp):
|
164
|
+
return
|
165
|
+
from . import lsf
|
166
|
+
fs = lsf.search(dp)
|
167
|
+
#print(f"fs: {fs}")
|
168
|
+
for fp in fs:
|
169
|
+
fcover(fp,wsize=wsize, chars=chars)
|
170
|
+
|
171
|
+
pass
|
172
|
+
fcovers = covers
|
@@ -270,38 +270,44 @@ class Confs(Base):
|
|
270
270
|
return self.fcs[key]
|
271
271
|
def var_keys(self):
|
272
272
|
return self.vars.keys()
|
273
|
-
def get_var(self, key, i=-1):
|
273
|
+
def get_var(self, key, i=-1, ns = None):
|
274
|
+
key = self.gid(ns, key)
|
274
275
|
if not self.has_var(key):
|
275
276
|
return None, False
|
276
277
|
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]
|
281
|
-
def push_vars(self, vars):
|
278
|
+
def set_vars(self, vars, ns = None):
|
279
|
+
[self.set_var(key,val,ns) for key,val in vars.items()]
|
280
|
+
def unset_vars(self, vars, ns = None):
|
281
|
+
[self.unset_var(key,ns) for key in vars]
|
282
|
+
def push_vars(self, vars, ns = None):
|
282
283
|
if vars is not None:
|
283
|
-
[self.push_var(key,val) for key,val in vars.items()]
|
284
|
+
[self.push_var(key,val,ns) for key,val in vars.items()]
|
284
285
|
return pyz.with_out(lambda :self.pop_vars(vars))
|
285
|
-
def pop_vars(self, vars):
|
286
|
+
def pop_vars(self, vars, ns = None):
|
286
287
|
if vars is not None:
|
287
|
-
[self.pop_var(key) for key in vars]
|
288
|
-
def set_var(self, key, val):
|
288
|
+
[self.pop_var(key,ns) for key in vars]
|
289
|
+
def set_var(self, key, val, ns = None):
|
289
290
|
"""
|
290
291
|
will remove push datas
|
291
292
|
"""
|
293
|
+
key = self.gid(ns, key)
|
292
294
|
self.vars[key] = [val]
|
293
|
-
def unset_var(self, key):
|
295
|
+
def unset_var(self, key, ns = None):
|
296
|
+
key = self.gid(ns, key)
|
294
297
|
if key in self.vars:
|
295
298
|
del self.vars[key]
|
296
|
-
def push_var(self, key, val):
|
299
|
+
def push_var(self, key, val, ns = None):
|
300
|
+
key = self.gid(ns, key)
|
297
301
|
if key not in self.vars:
|
298
302
|
self.vars[key] = []
|
299
303
|
self.vars[key].append(val)
|
300
|
-
def has_var(self, key):
|
304
|
+
def has_var(self, key, ns=None):
|
305
|
+
key = self.gid(ns, key)
|
301
306
|
if key not in self.vars:
|
302
307
|
return False
|
303
308
|
return len(self.vars[key])>0
|
304
|
-
def pop_var(self, key):
|
309
|
+
def pop_var(self, key, ns=None):
|
310
|
+
key = self.gid(ns, key)
|
305
311
|
if not self.has_var(key):
|
306
312
|
return
|
307
313
|
self.vars[key].pop(-1)
|
@@ -2,11 +2,12 @@
|
|
2
2
|
from buildz import Base, xf
|
3
3
|
from ..ioc.decorator import decorator,IOCDObj
|
4
4
|
class Loads(IOCDObj):
|
5
|
-
def init(self, conf, vtype = "envs"):
|
5
|
+
def init(self, conf, vtype = "envs", flush=False):
|
6
6
|
if type(conf)==str:
|
7
7
|
conf = xf.loads(conf)
|
8
8
|
self._type = vtype
|
9
9
|
self.conf = conf
|
10
|
+
self.flush = flush
|
10
11
|
def bind(self, wrap):
|
11
12
|
super().bind(wrap)
|
12
13
|
self.decorator.add_bind(self)
|
@@ -17,10 +18,13 @@ class Loads(IOCDObj):
|
|
17
18
|
for key, val in self.conf.items():
|
18
19
|
key = confs.gid(self.decorator.namespace, key)
|
19
20
|
maps[key] = val
|
20
|
-
if self._type
|
21
|
-
|
21
|
+
if self._type in ('env', 'envs'):
|
22
|
+
if self.flush:
|
23
|
+
confs.flush_env(maps)
|
22
24
|
xf.deep_fill(maps, conf.envs, 1)
|
23
25
|
else:
|
26
|
+
if self.flush:
|
27
|
+
maps = xf.unflush_maps(maps, confs.id)
|
24
28
|
confs.push_vars(maps)
|
25
29
|
|
26
30
|
pass
|
@@ -32,4 +36,5 @@ class Loadf(Loads):
|
|
32
36
|
|
33
37
|
pass
|
34
38
|
decorator.regist("load_conf", Loads)
|
39
|
+
decorator.regist("loads_conf", Loads)
|
35
40
|
decorator.regist("loadf_conf", Loadf)
|
@@ -47,6 +47,7 @@ class RefDeal(FormatDeal):
|
|
47
47
|
try:
|
48
48
|
return edata.conf.get_obj(key, info = info, src = edata.src)
|
49
49
|
except IdNotFoundError as exp:
|
50
|
+
#print(f"[testz] ref data: {data} in {edata.conf}")
|
50
51
|
if "default" in data:
|
51
52
|
key = data['default']
|
52
53
|
return self.get_obj(key, edata.conf, src=edata.src)
|
@@ -0,0 +1,117 @@
|
|
1
|
+
from .base import Base, fcBase
|
2
|
+
from buildz import xf,pyz
|
3
|
+
class EnvExp(Exception):
|
4
|
+
def __init__(self, id):
|
5
|
+
super().__init__(f"EnvExp id not found: '{id}'")
|
6
|
+
class BuildEnv(Base):
|
7
|
+
"""
|
8
|
+
3种从环境获取参数的方式:
|
9
|
+
从系统环境获取
|
10
|
+
从命令行输入参数获取
|
11
|
+
从本对象环境数据获取
|
12
|
+
2种设置环境参数方式:
|
13
|
+
设置到系统环境
|
14
|
+
设置到本对象环境数据
|
15
|
+
"""
|
16
|
+
def init(self, conf):
|
17
|
+
self.conf = conf
|
18
|
+
self.builds = {
|
19
|
+
}
|
20
|
+
def build_args(self):
|
21
|
+
pass
|
22
|
+
def build_conf(self, ids, flush, flush_list, exp, default):
|
23
|
+
return Env(ids, None, flush, flush_list, exp, default)
|
24
|
+
def deal(self, mg, args, spt, eglobal, orders, from_args, flush, flush_list, exp, default):
|
25
|
+
envs = []
|
26
|
+
env = None
|
27
|
+
ids = ids.Ids(spt)
|
28
|
+
if 'conf' not in orders:
|
29
|
+
orders.append('conf')
|
30
|
+
for order in orders:
|
31
|
+
_env = self.builds[order](ids, flush, flush_list, exp, default)
|
32
|
+
if order == 'conf':
|
33
|
+
env = _env
|
34
|
+
envs.append(_env)
|
35
|
+
env = Envs(envs, env)
|
36
|
+
return env
|
37
|
+
def call(self, mg, conf, args):
|
38
|
+
args, maps = self.conf([], conf)
|
39
|
+
return self.deal(mg, args, **maps)
|
40
|
+
|
41
|
+
pass
|
42
|
+
class Env(Base):
|
43
|
+
def _get(self, id):
|
44
|
+
return xf.dhget(self.maps, id)
|
45
|
+
def _set(self, id, val):
|
46
|
+
return xf.dset(self.maps, id, val)
|
47
|
+
def _has(self, id):
|
48
|
+
return xf.dhas(self.maps, id)
|
49
|
+
def _del(self, id):
|
50
|
+
return xf.dremove(self.maps, id)
|
51
|
+
def _fill(self, maps):
|
52
|
+
return xf.fill(maps, self.maps)
|
53
|
+
def init(self, ids=None, maps=None, flush=True, flush_list = False):
|
54
|
+
self.flush_list = flush_list
|
55
|
+
self.ids = ids
|
56
|
+
self.flush = flush
|
57
|
+
if maps is None:
|
58
|
+
maps = {}
|
59
|
+
if flush:
|
60
|
+
maps=xf.flush_maps(maps, self.ids.ids, flush_list)
|
61
|
+
self.maps = maps
|
62
|
+
def update(self, maps, flush=None, flush_list=None):
|
63
|
+
flush = pyz.nnull(flush, self.flush)
|
64
|
+
flush_list = pyz.nnull(flush_list, self.flush_list)
|
65
|
+
if flush:
|
66
|
+
maps = xf.flush_maps(maps, self.ids.ids, flush_list)
|
67
|
+
self._fill(maps)
|
68
|
+
def has(self, id, flush=None):
|
69
|
+
flush = pyz.not_null(flush, self.flush)
|
70
|
+
full_id = id
|
71
|
+
if flush:
|
72
|
+
ids = self.ids.ids(id)
|
73
|
+
else:
|
74
|
+
ids = id
|
75
|
+
return self._has(ids)
|
76
|
+
def get(self, id, flush=None):
|
77
|
+
flush = pyz.not_null(flush, self.flush)
|
78
|
+
full_id = id
|
79
|
+
if flush:
|
80
|
+
ids = self.ids.ids(id)
|
81
|
+
else:
|
82
|
+
ids = id
|
83
|
+
return self._get(ids)
|
84
|
+
def set(self, id, val, flush=None):
|
85
|
+
flush = pyz.not_null(flush, self.flush)
|
86
|
+
if flush:
|
87
|
+
id = self.ids.ids(id)
|
88
|
+
self._set(self.maps, id, val)
|
89
|
+
|
90
|
+
class SysEnv(Env):
|
91
|
+
def _get(self, id, exp_def=None):
|
92
|
+
sysdt = os.getenv(id)
|
93
|
+
return sysdt
|
94
|
+
def _has(self, id):
|
95
|
+
dt = self._get(id)
|
96
|
+
return dt is not None
|
97
|
+
def init(self, ids):
|
98
|
+
super().init(ids, flush=False)
|
99
|
+
|
100
|
+
class Envs(Env):
|
101
|
+
def init(self, envs, env):
|
102
|
+
self.envs = envs
|
103
|
+
self.env = env
|
104
|
+
def get(self, id):
|
105
|
+
for env in self.envs:
|
106
|
+
if env.has(id):
|
107
|
+
return env.get(id)
|
108
|
+
return self.env.get(id)
|
109
|
+
def set(self, id, val, *a,**b):
|
110
|
+
return self.env.set(id, val, *a,**b)
|
111
|
+
def has(self, id):
|
112
|
+
for env in self.envs:
|
113
|
+
if env.has(id):
|
114
|
+
return True
|
115
|
+
return self.env.has(id)
|
116
|
+
def update(self, maps, *a,**b):
|
117
|
+
return self.env.update(maps,*a,**b)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
from .base import Base
|
2
|
+
class Ids(Base):
|
3
|
+
'''
|
4
|
+
'''
|
5
|
+
def init(self, spt):
|
6
|
+
self.spt = spt
|
7
|
+
def id(self, *ids):
|
8
|
+
if len(ids)==0:
|
9
|
+
return None
|
10
|
+
elif len(ids)==1:
|
11
|
+
if type(ids[0]) in (list, tuple):
|
12
|
+
ids = ids[0]
|
13
|
+
return self.spt.join(ids)
|
14
|
+
def ids(self, id):
|
15
|
+
if type(id) in (list, tuple):
|
16
|
+
return id
|
17
|
+
return id.split(self.spt)
|
18
|
+
def call(self, a,b):
|
19
|
+
a = self.ids(a)
|
20
|
+
b = self.ids(b)
|
21
|
+
return self.id(a,b)
|
22
|
+
pass
|
23
|
+
|