buildz 0.6.42__tar.gz → 0.6.44__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.42/buildz.egg-info → buildz-0.6.44}/PKG-INFO +3 -1
- {buildz-0.6.42 → buildz-0.6.44}/README.md +2 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/config.py +1 -1
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/log.py +6 -6
- {buildz-0.6.42 → buildz-0.6.44}/buildz/logz.py +2 -2
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/time/timez.py +7 -2
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/__init__.py +1 -1
- buildz-0.6.44/buildz/xf/base.py +28 -0
- buildz-0.6.44/buildz/xf/loaderz/base.py +40 -0
- buildz-0.6.44/buildz/xf/loaderz/buffer.py +165 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/listmapz.py +58 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/listz.py +33 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/lr.py +70 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/lrval.py +43 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/mapz.py +43 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/nextz.py +26 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/reval.py +33 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/spt.py +40 -0
- buildz-0.6.44/buildz/xf/loaderz/deal/strz.py +109 -0
- buildz-0.6.44/buildz/xf/loaderz/exp.py +26 -0
- buildz-0.6.44/buildz/xf/loaderz/item.py +70 -0
- buildz-0.6.44/buildz/xf/loaderz/mg.py +123 -0
- buildz-0.6.44/buildz/xf/loaderz/test.py +112 -0
- buildz-0.6.44/buildz/xf/loaderz/test1.py +11 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/listmapz.py +1 -27
- buildz-0.6.44/buildz/xf/loaderz_nexp/deal/setz.py +15 -0
- buildz-0.6.44/buildz/xf/loaderz_nexp/deal/spc.py +20 -0
- buildz-0.6.44/buildz/xf/loaderz_nexp/deal/strz_new.py +284 -0
- buildz-0.6.44/buildz/xf/loaderz_nexp/deal/strz_old.py +197 -0
- buildz-0.6.44/buildz/xf/loaderz_nexp/pos.py +51 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/test.py +11 -5
- buildz-0.6.44/buildz/xf/readz_nexp.py +179 -0
- buildz-0.6.44/buildz/xf/writerz/base.py +58 -0
- buildz-0.6.44/buildz/xf/writerz/conf.py +56 -0
- buildz-0.6.44/buildz/xf/writerz/deal/jsonval.py +16 -0
- buildz-0.6.44/buildz/xf/writerz/deal/listmapz.py +53 -0
- buildz-0.6.44/buildz/xf/writerz/deal/listz.py +31 -0
- buildz-0.6.44/buildz/xf/writerz/deal/mapz.py +39 -0
- buildz-0.6.44/buildz/xf/writerz/deal/reval.py +20 -0
- buildz-0.6.44/buildz/xf/writerz/deal/strz.py +49 -0
- buildz-0.6.44/buildz/xf/writerz/itemz.py +50 -0
- buildz-0.6.44/buildz/xf/writerz/mg.py +37 -0
- buildz-0.6.44/buildz/xf/writerz/test.py +71 -0
- buildz-0.6.44/buildz/xf/writerz/testx.py +44 -0
- buildz-0.6.44/buildz/xf/writez.py +68 -0
- {buildz-0.6.42 → buildz-0.6.44/buildz.egg-info}/PKG-INFO +3 -1
- {buildz-0.6.42 → buildz-0.6.44}/buildz.egg-info/SOURCES.txt +36 -0
- {buildz-0.6.42 → buildz-0.6.44}/setup.py +1 -1
- {buildz-0.6.42 → buildz-0.6.44}/LICENSE +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/MANIFEST.in +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/__main__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argx.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/argz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/build.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/callz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/evalx.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/test_obj.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/argz/tests/conf.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/cache.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/dbs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/deal.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/deal_list.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/deal_type.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/defs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/factory.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/init.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/request.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/run.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/save.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/cache/cache.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/config/base.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/config/config.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/data/fp.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/data/item1.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/data/item2.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/res/data/test.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/test/xtest.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/auto/verify.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/cachez/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/cachez/cache.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/cmd.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/confz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/__main__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/basez.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/orm.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/postgresqlz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/sqlite3z.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/dv/structz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/install.txt +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/run.conf +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/runz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/db/tls.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/myers/help.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/res/test.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/search/deal.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/search/help.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/demo/xf/help.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/evalz/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/evalz/evalz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/evalz/res/default.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/evalz/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/fz/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/fz/dirz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/fz/fhs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/fz/fio.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/fz/lsf.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/html/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/html/test/demo.html +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/html/test/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/html/xml.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/init.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc/confs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc/loads.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/ioc/wrap.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/pathz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/pyz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tools.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/test_xfind.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/time/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/tio/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/tio/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/tio/win.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/tz/xfind.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/__main__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/code.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/code_modify.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/copy_old.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/file.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/item.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loaderz/deal/spc.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loaderz/deal/strz_new.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loaderz/deal/strz_old.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/base.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/buffer.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/listz.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/lr.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/lrval.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/mapz.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/nextz.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/reval.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/spt.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/deal/strz.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/exp.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/item.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/mg.py +0 -0
- {buildz-0.6.42/buildz/xf/loaderz → buildz-0.6.44/buildz/xf/loaderz_nexp}/test1.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/mapz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/read.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/readz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/stack.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/write.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/base.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/deal/listmapz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xf/xargs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xz/__init__.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xz/conf.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xz/data.js +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xz/test.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz/xz/trs.py +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.6.42 → buildz-0.6.44}/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.44
|
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
|
@@ -38,6 +38,8 @@ Codes of this project are not allowed to be used for AI training or any other fo
|
|
38
38
|
运行python -m buildz查看帮助
|
39
39
|
|
40
40
|
持续更新中。。。
|
41
|
+
2025/01/21:
|
42
|
+
修改xf的读写,读加上报错字符串位置,写改成递归调用减少时间开销
|
41
43
|
2025/01/17:
|
42
44
|
加了argz模块和evalz模块
|
43
45
|
argz模块用于命令行参数匹配
|
@@ -24,8 +24,8 @@ class Config(Base):
|
|
24
24
|
|
25
25
|
pass
|
26
26
|
#wrap.add_datas("[(env, env.buildz.auto.deal), buildz.auto.deal, auto.deal]")
|
27
|
-
@wrap.obj_args("[env, buildz.auto.deal, auto.deal]")
|
28
27
|
@wrap.obj(id="autoz.deal")
|
28
|
+
@wrap.obj_args("[env, buildz.auto.deal, auto.deal]")
|
29
29
|
class DfDeal(Base):
|
30
30
|
def init(self, id):
|
31
31
|
self.id = id
|
@@ -7,22 +7,22 @@ from ..base import Base
|
|
7
7
|
from ..ioc import wrap
|
8
8
|
from ..tools import *
|
9
9
|
import time, sys
|
10
|
-
from ..logz import FpLog
|
10
|
+
#from ..logz import FpLog
|
11
|
+
from .. import logz
|
11
12
|
@wrap.obj(id="log")
|
12
13
|
@wrap.obj_sets(cache="ref,cache")
|
13
|
-
class AutoLog(
|
14
|
+
class AutoLog(logz.Logs):
|
14
15
|
def call(self, maps, fp):
|
15
16
|
fp = xf.g(maps, log = None)
|
16
17
|
fp = self.cache.rfp(fp)
|
17
|
-
self.fp = fp
|
18
18
|
shows = xf.get(maps, "log.shows")
|
19
19
|
if shows is None:
|
20
20
|
shows = ["info", "warn", "error"]
|
21
|
-
self.shows = shows
|
22
21
|
format = xf.get(maps, "log.format")
|
23
|
-
if format is not None:
|
24
|
-
self.format = format
|
25
22
|
#print(f"[TETSZ] format: {format}")
|
23
|
+
fplog = logz.FpLog(fp,shows=shows,format=format)
|
24
|
+
stdlog = logz.StdLog(shows=shows,format=format)
|
25
|
+
self.init([fplog, stdlog], shows)
|
26
26
|
return True
|
27
27
|
|
28
28
|
pass
|
@@ -119,9 +119,9 @@ wrap.ns.add_datas("[logs.list, refs], buildz\.logz\.item,", ns = "buildz.logz")
|
|
119
119
|
@ns.obj(id="logs")
|
120
120
|
@ns.obj_args("ref, logs.list, []", "ref, buildz.logz.shows,null", "ref, buildz.logz.tag, null")
|
121
121
|
class Logs(Log):
|
122
|
-
def init(self, logs, shows = None, tag= None, lock = False):
|
122
|
+
def init(self, logs=[], shows = None, tag= None, lock = False):
|
123
123
|
super().init(shows, tag, lock=lock)
|
124
|
-
self.logs = logs
|
124
|
+
self.logs = list(logs)
|
125
125
|
def do_log(self, level, tag, *args):
|
126
126
|
for _log in self.logs:
|
127
127
|
_log.log(level, tag, *args)
|
@@ -4,17 +4,22 @@ from ...logz import FpLog
|
|
4
4
|
class Clock(Base):
|
5
5
|
def default(self, cost, fc, rst, *a, **b):
|
6
6
|
print(f"cost {cost} sec on {fc}")
|
7
|
-
def init(self, fc=None):
|
7
|
+
def init(self, fc=None, out_sec = False, show = True):
|
8
8
|
if fc is None:
|
9
9
|
fc = self.default
|
10
10
|
self.fc = fc
|
11
|
+
self.show = show
|
12
|
+
self.out_sec = out_sec
|
11
13
|
def call(self, fc):
|
12
14
|
curr = time.time()
|
13
15
|
def tfc(*a,**b):
|
14
16
|
curr = time.time()
|
15
17
|
rst = fc(*a,**b)
|
16
18
|
cost = time.time()-curr
|
17
|
-
self.
|
19
|
+
if self.show:
|
20
|
+
self.fc(cost, fc, rst, *a, **b)
|
21
|
+
if self.out_sec:
|
22
|
+
rst = [rst, cost]
|
18
23
|
return rst
|
19
24
|
return tfc
|
20
25
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
from buildz import Base
|
3
|
+
class Args(Base):
|
4
|
+
def str(self):
|
5
|
+
return f"<Args args={self.args}, maps={self.maps}>"
|
6
|
+
@property
|
7
|
+
def lists(self):
|
8
|
+
return self.args
|
9
|
+
@lists.setter
|
10
|
+
def lists(self, val):
|
11
|
+
self.args=val
|
12
|
+
@lists.deleter
|
13
|
+
def lists(self):
|
14
|
+
del self.args
|
15
|
+
@property
|
16
|
+
def dicts(self):
|
17
|
+
return self.maps
|
18
|
+
@dicts.setter
|
19
|
+
def dicts(self, val):
|
20
|
+
self.maps=val
|
21
|
+
@dicts.deleter
|
22
|
+
def dicts(self):
|
23
|
+
del self.maps
|
24
|
+
def init(self, args, maps):
|
25
|
+
self.args = args
|
26
|
+
self.maps = maps
|
27
|
+
|
28
|
+
pass
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
def arr_pos(arr):
|
3
|
+
if len(arr)==0:
|
4
|
+
return (0,0)
|
5
|
+
return (arr[0].pos[0], arr[-1].pos[-1])
|
6
|
+
class BaseDeal:
|
7
|
+
def arr_pos(self, arr):
|
8
|
+
return arr_pos(arr)
|
9
|
+
def has_prev(self):
|
10
|
+
return 1
|
11
|
+
def has_deal(self):
|
12
|
+
return 1
|
13
|
+
def labels(self):
|
14
|
+
return []
|
15
|
+
def types(self):
|
16
|
+
return []
|
17
|
+
def prepare(self, msg):
|
18
|
+
pass
|
19
|
+
def regist(self, mgs):
|
20
|
+
if self._id is None:
|
21
|
+
self._id = mgs.regist()
|
22
|
+
self.prepare(mgs)
|
23
|
+
def id(self):
|
24
|
+
return self._id
|
25
|
+
def __str__(self):
|
26
|
+
return "BaseDeal"
|
27
|
+
def __repr__(self):
|
28
|
+
return str(self)
|
29
|
+
def __init__(self, *argv, **maps):
|
30
|
+
self._id = None
|
31
|
+
self.init(*argv, **maps)
|
32
|
+
def init(self, *argv, **maps):
|
33
|
+
pass
|
34
|
+
def deal(self, buffer, rst, mg):
|
35
|
+
pass
|
36
|
+
def build(self):
|
37
|
+
pass
|
38
|
+
|
39
|
+
pass
|
40
|
+
|
@@ -0,0 +1,165 @@
|
|
1
|
+
|
2
|
+
class BufferInput:
|
3
|
+
def __init__(self, buf):
|
4
|
+
self.buf = buf
|
5
|
+
def __call__(self, size=1):
|
6
|
+
s = self.buf[:size]
|
7
|
+
self.buf = self.buf[size:]
|
8
|
+
return s
|
9
|
+
|
10
|
+
pass
|
11
|
+
"""
|
12
|
+
Buffer:
|
13
|
+
缓存操作:
|
14
|
+
//add:从数据中获取字符串并直接放入缓存,返回空
|
15
|
+
get: 从缓存获取字符串
|
16
|
+
rget: 从缓存获取字符串,从右往左拿
|
17
|
+
size: 缓存大小
|
18
|
+
clean: 清空缓存
|
19
|
+
full:获取缓存完整字符串
|
20
|
+
read_cache: 从数据中获取字符串并直接放入缓存,返回获取的字符串
|
21
|
+
操作数据
|
22
|
+
read: 从数据中获取字符串
|
23
|
+
clean2read:清空缓存和数据中所有读取过的字符串
|
24
|
+
pos: 返回缓存索引,数据读取索引
|
25
|
+
"""
|
26
|
+
class BufferBase:
|
27
|
+
def pos2str(self, pos):
|
28
|
+
assert 0
|
29
|
+
def init(self):
|
30
|
+
self.buffer_base =0
|
31
|
+
self.read_base=0
|
32
|
+
def pos(self):
|
33
|
+
return self.buffer_base, self.buffer_base+self.size()
|
34
|
+
def offsets(self):
|
35
|
+
return self.buffer_base, self.read_base
|
36
|
+
def read_cache(self, size=1):
|
37
|
+
assert 0
|
38
|
+
def read(self, size=1):
|
39
|
+
assert 0
|
40
|
+
def clean2read(self, size=1):
|
41
|
+
return self.clean(size)
|
42
|
+
def clean(self, read_size=0):
|
43
|
+
assert 0
|
44
|
+
def size(self):
|
45
|
+
assert 0
|
46
|
+
def full(self):
|
47
|
+
assert 0
|
48
|
+
def rget(self, size=1):
|
49
|
+
assert 0
|
50
|
+
def get(self, size=1):
|
51
|
+
assert 0
|
52
|
+
class Buffer(BufferBase):
|
53
|
+
def pos2str(self, pos):
|
54
|
+
return "read from file"
|
55
|
+
def read_cache(self, size = 1):
|
56
|
+
s = self.read(size)
|
57
|
+
self.buffer+=s
|
58
|
+
self.s_read = self.s_read[len(s):]
|
59
|
+
return s
|
60
|
+
def read(self, size = 1):
|
61
|
+
if self.s_read is None:
|
62
|
+
self.s_read = self.input(1)
|
63
|
+
self.read_base+=1
|
64
|
+
l = len(self.s_read)
|
65
|
+
if l<size:
|
66
|
+
self.s_read += self.input(size-l)
|
67
|
+
self.read_base+=size-l
|
68
|
+
rst = self.s_read[:size]
|
69
|
+
if self.buffer is None:
|
70
|
+
self.buffer = self.s_read[:0]
|
71
|
+
return rst
|
72
|
+
def init(self):
|
73
|
+
super().init()
|
74
|
+
self.buffer = None
|
75
|
+
self.s_read = None
|
76
|
+
def __init__(self, input):
|
77
|
+
self.input = input
|
78
|
+
self.init()
|
79
|
+
def add(self, size):
|
80
|
+
if self.buffer is None:
|
81
|
+
self.buffer = self.s_read[:size]
|
82
|
+
else:
|
83
|
+
self.buffer += self.s_read[:size]
|
84
|
+
def size(self):
|
85
|
+
if self.buffer is None:
|
86
|
+
return 0
|
87
|
+
return len(self.buffer)
|
88
|
+
def full(self, size = 0, right = 1):
|
89
|
+
return self.buffer
|
90
|
+
def clean2read(self, read_size=1):
|
91
|
+
if read_size>0:
|
92
|
+
self.s_read = self.s_read[read_size:]
|
93
|
+
self.buffer = self.buffer[:0]
|
94
|
+
self.buffer_base=self.read_base
|
95
|
+
def clean(self, read_size = 0):
|
96
|
+
if read_size>0:
|
97
|
+
self.s_read = self.s_read[read_size:]
|
98
|
+
self.buffer = self.buffer[:0]
|
99
|
+
self.buffer_base=self.read_base
|
100
|
+
def rget(self, size=1):
|
101
|
+
return self.buffer[-size:]
|
102
|
+
def get(self, size=1):
|
103
|
+
return self.buffer[:size]
|
104
|
+
|
105
|
+
pass
|
106
|
+
|
107
|
+
def decode(s, coding = 'utf-8'):
|
108
|
+
coding = coding.lower()
|
109
|
+
xcoding = 'utf-8'
|
110
|
+
if coding == 'utf-8':
|
111
|
+
xcoding = 'gbk'
|
112
|
+
try:
|
113
|
+
return s.decode(coding)
|
114
|
+
except:
|
115
|
+
return s.decode(xcoding)
|
116
|
+
|
117
|
+
pass
|
118
|
+
class StrBuffer(BufferBase):
|
119
|
+
def pos2str(self, pos):
|
120
|
+
s = self.str[pos[0]:pos[1]+1]
|
121
|
+
return s
|
122
|
+
def read_cache(self, size = 1):
|
123
|
+
s = self.read(size)
|
124
|
+
l = len(s)
|
125
|
+
self.buffer_size+=l
|
126
|
+
self.read_base+=l
|
127
|
+
return s
|
128
|
+
def read(self, size = 1):
|
129
|
+
s = self.str[self.read_base:self.read_base+size]
|
130
|
+
if type(s)==bytes:
|
131
|
+
s = decode(s)
|
132
|
+
return s
|
133
|
+
def init(self):
|
134
|
+
super().init()
|
135
|
+
self.buffer_size = 0
|
136
|
+
def __init__(self, s):
|
137
|
+
self.str = s
|
138
|
+
self.init()
|
139
|
+
def add(self, size):
|
140
|
+
# x = self.str[self.buffer_base+self.buffer_size:self.buffer_base+self.buffer_size+len(arr)]
|
141
|
+
# if x!=arr:
|
142
|
+
# print(f"[ERROR] x:({x}), arr:({arr}), bb: {self.buffer_base}, bs:{self.buffer_size}, rb: {self.read_base}")
|
143
|
+
# print("[["+self.str[self.buffer_base:self.read_base+10]+"]]")
|
144
|
+
# raise Exception("")
|
145
|
+
self.buffer_size+=size
|
146
|
+
def size(self):
|
147
|
+
return self.buffer_size
|
148
|
+
def full(self):
|
149
|
+
return self.str[self.buffer_base:self.buffer_base+self.buffer_size]
|
150
|
+
def clean2read(self, read_size=1):
|
151
|
+
self.read_base+=read_size
|
152
|
+
self.buffer_base = self.read_base
|
153
|
+
self.buffer_size = 0
|
154
|
+
def clean(self, read_size = 0):
|
155
|
+
self.read_base+=read_size
|
156
|
+
self.buffer_base = self.read_base
|
157
|
+
self.buffer_size = 0
|
158
|
+
def rget(self, size=1):
|
159
|
+
size = min(size, self.buffer_size)
|
160
|
+
return self.str[self.buffer_base+self.buffer_size-size:self.buffer_base+self.buffer_size]
|
161
|
+
def get(self, size=1):
|
162
|
+
size = min(size, self.buffer_size)
|
163
|
+
return self.str[self.buffer_base:self.buffer_base+size]
|
164
|
+
|
165
|
+
pass
|
@@ -0,0 +1,58 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
from .. import exp
|
4
|
+
from . import lr
|
5
|
+
from ...base import Args
|
6
|
+
class ListMapDeal(lr.LRDeal):
|
7
|
+
"""
|
8
|
+
分隔符,有分隔符后将缓存的数据当作字符串
|
9
|
+
"""
|
10
|
+
def init(self, left, right, as_map = False, as_args=False):
|
11
|
+
super().init(left, right, "listmap")
|
12
|
+
self.as_map = as_map
|
13
|
+
self.as_args = as_args
|
14
|
+
def types(self):
|
15
|
+
return ['list']
|
16
|
+
def build(self, obj):
|
17
|
+
# if self.check_right(obj):
|
18
|
+
# return None
|
19
|
+
val = obj.val
|
20
|
+
if len(val)==0:
|
21
|
+
obj.val = []
|
22
|
+
obj.is_val = 1
|
23
|
+
return obj
|
24
|
+
return self.build_arr(val, obj.pos)
|
25
|
+
def build_arr(self, arr, arr_pos):
|
26
|
+
rst = {}
|
27
|
+
lst = []
|
28
|
+
mp = {}
|
29
|
+
i = 0
|
30
|
+
while i<len(arr):
|
31
|
+
obj = arr[i]
|
32
|
+
opt = None
|
33
|
+
if i+1<len(arr):
|
34
|
+
opt = arr[i+1]
|
35
|
+
if opt is not None and opt.type == 'kv':
|
36
|
+
if i+2>=len(arr):
|
37
|
+
raise exp.Exp(f"u f in listmap: {arr}", arr_pos)
|
38
|
+
val = arr[i+2]
|
39
|
+
mp[obj.val]=val.val
|
40
|
+
i+=3
|
41
|
+
else:
|
42
|
+
lst.append(obj.val)
|
43
|
+
i+=1
|
44
|
+
if self.as_args:
|
45
|
+
return item.Item(Args(lst, mp), arr_pos, type='args', is_val=1)
|
46
|
+
if len(mp)==0:
|
47
|
+
if self.as_map:
|
48
|
+
if len(lst)==0:
|
49
|
+
return item.Item(mp, arr_pos, type="map", is_val=1)
|
50
|
+
else:
|
51
|
+
return item.Item(Args(lst, mp), arr_pos, type='args', is_val=1)
|
52
|
+
return item.Item(lst, arr_pos, type="list", is_val=1)
|
53
|
+
elif len(lst)==0:
|
54
|
+
return item.Item(mp, arr_pos, type="map", is_val=1)
|
55
|
+
else:
|
56
|
+
return item.Item(Args(lst, mp), arr_pos, type='args', is_val=1)
|
57
|
+
|
58
|
+
pass
|
@@ -0,0 +1,33 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
from .. import exp
|
4
|
+
from . import lr
|
5
|
+
class ListDeal(lr.LRDeal):
|
6
|
+
"""
|
7
|
+
分隔符,有分隔符后将缓存的数据当作字符串
|
8
|
+
"""
|
9
|
+
def init(self, left, right):
|
10
|
+
super().init(left, right, 'list')
|
11
|
+
def types(self):
|
12
|
+
return ['list']
|
13
|
+
def build(self, obj):
|
14
|
+
val = obj.val
|
15
|
+
if len(val)==0:
|
16
|
+
obj.val = []
|
17
|
+
obj.is_val = 1
|
18
|
+
return obj
|
19
|
+
if len(val)>1:
|
20
|
+
opt = val[1]
|
21
|
+
if opt.type=='kv':
|
22
|
+
return None
|
23
|
+
return self.build_arr(val, obj.pos)
|
24
|
+
def build_arr(self, arr, arr_pos):
|
25
|
+
rst = []
|
26
|
+
#pos = self.arr_pos(arr)#(arr[0].pos[0],arr[-1].pos[-1])
|
27
|
+
for _item in arr:
|
28
|
+
if not _item.is_val:
|
29
|
+
raise exp.Exp(f"error in list: item is not val: {_item}", _item.pos)
|
30
|
+
rst.append(_item.val)
|
31
|
+
return item.Item(rst, arr_pos, type='list', is_val = 1)
|
32
|
+
|
33
|
+
pass
|
@@ -0,0 +1,70 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
from .. import exp
|
4
|
+
class LRDeal(base.BaseDeal):
|
5
|
+
def labels(self):
|
6
|
+
return [self.left]
|
7
|
+
def types(self):
|
8
|
+
return []
|
9
|
+
def deal(self, buffer, rst, mg):
|
10
|
+
cl = buffer.read(self.ll)
|
11
|
+
if self.left!=cl:
|
12
|
+
return False
|
13
|
+
_arr = []
|
14
|
+
rm = buffer.full().strip()
|
15
|
+
rm_pos = buffer.pos()
|
16
|
+
buffer.clean2read(self.ll)
|
17
|
+
if len(rm)>0:
|
18
|
+
_arr.append(item.Item(rm, rm_pos, type="str", is_val=False))
|
19
|
+
arr_pos = list(rm_pos)
|
20
|
+
while True:
|
21
|
+
cr = buffer.read(self.lr)
|
22
|
+
if cr == self.right:
|
23
|
+
rm = buffer.full().strip()
|
24
|
+
rm_pos = buffer.pos()
|
25
|
+
buffer.clean2read(self.lr)
|
26
|
+
break
|
27
|
+
if not mg.deal(buffer, _arr):
|
28
|
+
e_pos = buffer.pos()
|
29
|
+
raise exp.Exp("Error lr", e_pos)
|
30
|
+
buffer.clean()
|
31
|
+
arr_pos[1] = rm_pos[1]
|
32
|
+
arr_pos = tuple(arr_pos)
|
33
|
+
if len(rm)>0:
|
34
|
+
_arr.append(item.Item(rm , rm_pos, type = 'str', is_val=False))
|
35
|
+
if self.mg_build:
|
36
|
+
dts = mg.build_arr(_arr)
|
37
|
+
else:
|
38
|
+
dts = _arr
|
39
|
+
obj = self.build_arr(dts, arr_pos)
|
40
|
+
rst.append(obj)
|
41
|
+
return True
|
42
|
+
def to_vals(self, _arr, mg):
|
43
|
+
dts = []
|
44
|
+
for k in _arr:
|
45
|
+
_k = mg.build(k)
|
46
|
+
if item.is_null(_k):
|
47
|
+
continue
|
48
|
+
dts.append(_k)
|
49
|
+
return dts
|
50
|
+
def build_arr(self, obj, arr_pos):
|
51
|
+
return item.Item(obj, arr_pos, type = self.type, is_val=True)
|
52
|
+
"""
|
53
|
+
分隔符,有分隔符后将缓存的数据当作字符串
|
54
|
+
"""
|
55
|
+
def prepare(self, mg):
|
56
|
+
self.left = mg.like(self.left)
|
57
|
+
self.right = mg.like(self.right)
|
58
|
+
self.ll = len(self.left)
|
59
|
+
self.lr = len(self.right)
|
60
|
+
def init(self, left, right, name= "lr", mg_build = True):
|
61
|
+
self.left = left
|
62
|
+
self.right = right
|
63
|
+
self.ll = len(left)
|
64
|
+
self.lr = len(right)
|
65
|
+
self.name = name
|
66
|
+
self.mg_build = mg_build
|
67
|
+
def err(self, s):
|
68
|
+
return s.replace("<lr>", self.name)
|
69
|
+
|
70
|
+
pass
|
@@ -0,0 +1,43 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
from .. import exp
|
4
|
+
from . import lr
|
5
|
+
from . import reval
|
6
|
+
class Fcs:
|
7
|
+
def __init__(self):
|
8
|
+
self.maps = {}
|
9
|
+
def set(self, _type, fc):
|
10
|
+
self.maps[_type] = fc
|
11
|
+
def __call__(self, val, _type):
|
12
|
+
if _type not in self.maps:
|
13
|
+
raise Exception("unreginize type:"+_type)
|
14
|
+
return self.maps[_type](val)
|
15
|
+
|
16
|
+
pass
|
17
|
+
|
18
|
+
|
19
|
+
class LRValDeal(lr.LRDeal):
|
20
|
+
"""
|
21
|
+
"""
|
22
|
+
def init(self, left, right, fc):
|
23
|
+
super().init(left, right, 'lrval', False)
|
24
|
+
self.fc = fc
|
25
|
+
def build_arr(self, arr, arr_pos):
|
26
|
+
rst = []
|
27
|
+
#pos = self.arr_pos(arr)#(arr[0].pos[0], arr[-1].pos[-1])
|
28
|
+
if len(arr)!=3:
|
29
|
+
raise exp.Exp(f"error in lrval:{arr}", arr_pos)
|
30
|
+
for _item in arr[::2]:
|
31
|
+
if type(_item.val)!=str:
|
32
|
+
raise exp.Exp(f"error in list:{_item}", _item.pos)
|
33
|
+
rst.append(_item.val)
|
34
|
+
try:
|
35
|
+
val = self.fc(rst[0], rst[1])
|
36
|
+
except Exception as exp1:
|
37
|
+
print("exp:", exp1)
|
38
|
+
raise exp.Exp(f"error in lrval fc: {self.fc}({rst}): {exp1} ", pos)
|
39
|
+
return item.Item(val, arr_pos, type='val', is_val = 1)
|
40
|
+
def build_arrx(self, arr, arr_pos):
|
41
|
+
return self.build(obj)
|
42
|
+
|
43
|
+
pass
|
@@ -0,0 +1,43 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
from .. import exp
|
4
|
+
from . import lr
|
5
|
+
class MapDeal(lr.LRDeal):
|
6
|
+
"""
|
7
|
+
分隔符,有分隔符后将缓存的数据当作字符串
|
8
|
+
"""
|
9
|
+
def init(self, left, right):
|
10
|
+
super().init(left, right, "map")
|
11
|
+
def types(self):
|
12
|
+
return ['list']
|
13
|
+
def build(self, obj):
|
14
|
+
#if self.check_right(obj):
|
15
|
+
# return None
|
16
|
+
val = obj.val
|
17
|
+
if len(val)==0:
|
18
|
+
obj.val = {}
|
19
|
+
obj.is_val = 1
|
20
|
+
return obj
|
21
|
+
if len(val)%3!=0:
|
22
|
+
return None
|
23
|
+
opt = val[1]
|
24
|
+
if opt.type!='kv':
|
25
|
+
return None
|
26
|
+
return self.build_arr(val, obj.pos)
|
27
|
+
def build_arr(self, arr, arr_pos):
|
28
|
+
rst = {}
|
29
|
+
#pos = self.arr_pos(arr)#(arr[0].pos[0], arr[-1].pos[-1])
|
30
|
+
if len(arr)%3!=0:
|
31
|
+
raise exp.Exp(f"u f in map: {arr}", arr_pos)
|
32
|
+
for i in range(0, len(arr), 3):
|
33
|
+
k = arr[i]
|
34
|
+
v = arr[i+2]
|
35
|
+
opt = arr[i+1]
|
36
|
+
if opt.type != "kv":
|
37
|
+
raise exp.Exp(f"u f opt in map: {opt}", opt.pos)
|
38
|
+
if type(k.val)==list:
|
39
|
+
k.val = tuple(k.val)
|
40
|
+
rst[k.val] = v.val
|
41
|
+
return item.Item(rst, arr_pos, type='map', is_val = 1)
|
42
|
+
|
43
|
+
pass
|
@@ -0,0 +1,26 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
|
4
|
+
class PrevNextDeal(base.BaseDeal):
|
5
|
+
def labels(self):
|
6
|
+
return ['']
|
7
|
+
#def types(self):
|
8
|
+
# return [""]
|
9
|
+
"""
|
10
|
+
读取下一个字符放缓存里,应放最低优先级
|
11
|
+
"""
|
12
|
+
def deal(self, buffer, arr, mg):
|
13
|
+
c = buffer.read_cache(1)
|
14
|
+
if len(c)==0:
|
15
|
+
rm = buffer.full().strip()
|
16
|
+
pos = buffer.pos()
|
17
|
+
buffer.clean()
|
18
|
+
if len(rm)==0:
|
19
|
+
return False
|
20
|
+
obj = item.Item(rm, pos, type = 'str', is_val = 0)
|
21
|
+
arr.append(obj)
|
22
|
+
# TODO return True?
|
23
|
+
return False
|
24
|
+
return True
|
25
|
+
|
26
|
+
pass
|
@@ -0,0 +1,33 @@
|
|
1
|
+
from .. import base
|
2
|
+
from .. import item
|
3
|
+
from .. import exp
|
4
|
+
from . import lr
|
5
|
+
import re
|
6
|
+
class ValDeal(base.BaseDeal):
|
7
|
+
def prepare(self,mg):
|
8
|
+
self.pt = mg.like(self.pt)
|
9
|
+
self.type = mg.type
|
10
|
+
def types(self):
|
11
|
+
return ["str"]
|
12
|
+
"""
|
13
|
+
正则表达式匹配
|
14
|
+
"""
|
15
|
+
def init(self, pt, fc):
|
16
|
+
st = "^"
|
17
|
+
ed = "$"
|
18
|
+
if pt[0]!=st:
|
19
|
+
pt = st+pt
|
20
|
+
if pt[-1]!=ed:
|
21
|
+
pt = pt+ed
|
22
|
+
self.pt = pt
|
23
|
+
self.fc = fc
|
24
|
+
def build(self, obj):
|
25
|
+
val = obj.val
|
26
|
+
if type(val) != self.type:
|
27
|
+
return None
|
28
|
+
if re.match(self.pt, val) is None:
|
29
|
+
return None
|
30
|
+
val = self.fc(val)
|
31
|
+
return item.Item(val, obj.pos, type = "val", is_val = 1)
|
32
|
+
|
33
|
+
pass
|