buildz 0.7.1__tar.gz → 0.7.3__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.7.1/buildz.egg-info → buildz-0.7.3}/PKG-INFO +8 -1
- {buildz-0.7.1 → buildz-0.7.3}/README.md +7 -0
- buildz-0.7.3/buildz/__init__.py +25 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/base.py +29 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/report.txt +4 -3
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/torch/dict_middle.py +10 -3
- buildz-0.7.3/buildz/gpuz/torch/multi_dict_middle.py +191 -0
- buildz-0.7.3/buildz/iocz/__init__.py +6 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/gateway.py +1 -1
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/mhttp.py +4 -4
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/proxy.py +12 -8
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/record.py +11 -1
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/tcp/middle.py +41 -26
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/test/test_gw.py +8 -0
- buildz-0.7.3/buildz/xf/__init__.py +21 -0
- buildz-0.7.3/buildz/xf/base.py +30 -0
- buildz-0.7.3/buildz/xf/cpp/Makefile +24 -0
- buildz-0.7.3/buildz/xf/cpp/README.txt +29 -0
- buildz-0.7.3/buildz/xf/cpp/clean.py +6 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/base.h +36 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/base_deal.h +28 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/buffer.cpp +88 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/buffer.h +57 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/callback.h +11 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/callback_demo.cpp +137 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/callback_demo.h +32 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/code.cpp +95 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/code.h +1 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/cxf.h +19 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/dict.cpp +37 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/dict.h +10 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/kv.h +9 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/list.cpp +32 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/list.h +10 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/listdict.cpp +39 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/listdict.h +11 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/lr.cpp +41 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/lr.h +18 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/lrval.cpp +43 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/lrval.h +17 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/next.cpp +24 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/next.h +10 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/reval.h +39 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/spt.cpp +27 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/spt.h +21 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/str.cpp +89 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/deal/str.h +25 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/exp.h +25 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/init.cpp +148 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/init.h +16 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/item.h +31 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/mg.cpp +99 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/mg.h +30 -0
- buildz-0.7.3/buildz/xf/cpp/loaderz/test.cpp +43 -0
- buildz-0.7.3/buildz/xf/cpp/pc.cpp +8 -0
- buildz-0.7.3/buildz/xf/cpp/pc.h +15 -0
- buildz-0.7.3/buildz/xf/cpp/pcxf.pyx +118 -0
- buildz-0.7.3/buildz/xf/cpp/setup.py +52 -0
- buildz-0.7.3/buildz/xf/cpp/setup_mingw32.py +8 -0
- buildz-0.7.3/buildz/xf/cpp/tstcxf.py +57 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/strz.py +0 -10
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/test.py +1 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/readz.py +9 -1
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/readz_nexp.py +1 -1
- {buildz-0.7.1 → buildz-0.7.3/buildz.egg-info}/PKG-INFO +8 -1
- {buildz-0.7.1 → buildz-0.7.3}/buildz.egg-info/SOURCES.txt +46 -8
- {buildz-0.7.1 → buildz-0.7.3}/setup.py +1 -1
- buildz-0.7.1/buildz/__init__.py +0 -9
- buildz-0.7.1/buildz/iocz/__init__.py +0 -3
- buildz-0.7.1/buildz/xf/__init__.py +0 -13
- buildz-0.7.1/buildz/xf/base.py +0 -28
- buildz-0.7.1/buildz/xf/copy_old.py +0 -60
- buildz-0.7.1/buildz/xf/loaderz/deal/spc.py +0 -20
- buildz-0.7.1/buildz/xf/loaderz/deal/strz_new.py +0 -284
- buildz-0.7.1/buildz/xf/loaderz/deal/strz_old.py +0 -197
- buildz-0.7.1/buildz/xf/loaderz_nexp/deal/spc.py +0 -20
- buildz-0.7.1/buildz/xf/loaderz_nexp/deal/strz_new.py +0 -284
- buildz-0.7.1/buildz/xf/loaderz_nexp/deal/strz_old.py +0 -197
- {buildz-0.7.1 → buildz-0.7.3}/LICENSE +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/MANIFEST.in +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/__main__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argx.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/argz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/callz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/conf_argz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/conf_callz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/evalx.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/init.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz/test_call.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/argz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/build.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/callz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/evalx.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/test_obj.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/tests/conf.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/argz_bk/testx.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/cache.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/config.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/dbs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/deal_list.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/deal_type.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/defs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/factory.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/init.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/log.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/request.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/run.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/save.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/cache/cache.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/config/base.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/config/config.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/data/fp.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/data/item1.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/data/item2.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/res/data/test.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/test/xtest.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/auto/verify.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/cachez/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/cachez/cache.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/cmd.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/confz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/__main__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/basez.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/clickhousez.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/lib/readme +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/mysqlz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/oraclez.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/orm.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/postgresqlz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/sqlite3z.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/dv/structz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/install.txt +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/run.conf +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/runz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/db/tls.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/myers/help.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/res/test.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/search/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/search/help.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/demo/xf/help.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/dz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/dz/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/evalz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/evalz/evalz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/evalz/res/default.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/evalz/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/fz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/fz/dirz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/fz/fhs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/fz/fio.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/fz/lsf.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/analyze.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/demo.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/take_gpu_mem.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/test_atten_demo.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/test_linear_demo.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/test_multi_demo.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/test/test_resnet_demo.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/torch/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/gpuz/torch/seq_middle.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/html/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/html/test/demo.html +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/html/test/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/html/xml.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/init.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc/confs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc/decorator.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc/loads.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc/single.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/branch.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/init.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/iocf.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/refs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/ioc_deal/xfile.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/ioc/wrap.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf/conf.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf/unit.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf/up.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/attr.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/call.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/cvar.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/env.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/ioc.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/method.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/obj.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/ref.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/conf_deal/val.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/init.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/builds.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/confs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/datas.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/dataset.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/encapes.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/envs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/ids.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/init.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/single.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/sys_envs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/tdata.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/tdict.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/unit.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc/vars.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc_deal/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc_deal/deal.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc_deal/ioc.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc_deal/obj.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc_deal/ref.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/ioc_deal/val.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/test/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/wrap/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/wrap/default_wraps.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/wrap/env.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/wrap/obj.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/iocz/wrap/wraps.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/logz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/caps.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/mhttp/mhttps.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/sslz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/sslz/gen.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/sslz/gen.pyi +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/tcp/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/tcp/__main__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/test/__main__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/test/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/netz/test/test_cli.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/pathz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/pyz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tls.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tools.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/__init__.py +0 -0
- {buildz-0.7.1/buildz/xf → buildz-0.7.3/buildz/tz}/code.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/test_xfind.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/time/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/time/timez.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/tio/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/tio/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/tio/getch.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/tio/lx.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/tio/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/tio/win.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/tz/xfind.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/__main__.py +0 -0
- /buildz-0.7.1/buildz/xf/code_modify.py → /buildz-0.7.3/buildz/xf/code.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/file.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/item.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/listmapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz/test1.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/buffer.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/exp.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/item.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/pos.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/loaderz_nexp/test1.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/read.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/stack.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/write.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/deal/listmapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/base.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/conf.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/deal/jsonval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/deal/listmapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/deal/listz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/deal/mapz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/deal/reval.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/deal/strz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/itemz.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/mg.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writerz/testx.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/writez.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xf/xargs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xz/__init__.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xz/conf.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xz/data.js +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xz/test.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz/xz/trs.py +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/notes/notes.txt +0 -0
- {buildz-0.7.1 → buildz-0.7.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.3
|
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
|
@@ -16,6 +16,13 @@ License-File: LICENSE
|
|
16
16
|
禁止将本项目代码用于ai训练
|
17
17
|
declaration:
|
18
18
|
Codes of this project are not allowed to be used for AI training or any other form of machine learning processes.
|
19
|
+
|
20
|
+
使用此代码库发现bug或者有需求需要开发都可联系(QQ或邮箱联系,QQ就是邮箱号)
|
21
|
+
|
22
|
+
邮箱1:1174534295@qq.com
|
23
|
+
|
24
|
+
邮箱2:1309458652@qq.com
|
25
|
+
|
19
26
|
```
|
20
27
|
1,在json格式基础上加了点东西,让配置文件写起来更简单,模块在buildz.xf下
|
21
28
|
2,基于xf格式写了个ioc控制反转配置文件读取的程序,模块在buildz.ioc下
|
@@ -3,6 +3,13 @@
|
|
3
3
|
禁止将本项目代码用于ai训练
|
4
4
|
declaration:
|
5
5
|
Codes of this project are not allowed to be used for AI training or any other form of machine learning processes.
|
6
|
+
|
7
|
+
使用此代码库发现bug或者有需求需要开发都可联系(QQ或邮箱联系,QQ就是邮箱号)
|
8
|
+
|
9
|
+
邮箱1:1174534295@qq.com
|
10
|
+
|
11
|
+
邮箱2:1309458652@qq.com
|
12
|
+
|
6
13
|
```
|
7
14
|
1,在json格式基础上加了点东西,让配置文件写起来更简单,模块在buildz.xf下
|
8
15
|
2,基于xf格式写了个ioc控制反转配置文件读取的程序,模块在buildz.ioc下
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
|
3
|
+
__version__="0.7.2"
|
4
|
+
|
5
|
+
# 小号多
|
6
|
+
__author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
|
7
|
+
__doc__ = '''
|
8
|
+
使用此代码库发现bug或者有需求需要开发都可联系(QQ或邮箱联系,QQ就是邮箱号)
|
9
|
+
buildz.xf: 简化的json
|
10
|
+
buildz.xz: 简化对dict和list的读写
|
11
|
+
buildz.ioc, buildz.iocz: ioc注入
|
12
|
+
buildz.netz: 网络相关,包括ssl证书生成,正反向代理,端口映射,抓包
|
13
|
+
buildz.db: SQL脚本处理工具,基于其他SQL处理库做了使用简化
|
14
|
+
buildz.html: html文本处理
|
15
|
+
buildz.gpuz: 机器学习用内存做显存的模型缓存,目前只写了基于pytorch的工具,测试卷积和注意力的效果还行
|
16
|
+
buildz.fz: 文件处理
|
17
|
+
buildz.auto: 自动化测试
|
18
|
+
buildz.logz: 简单的日志工具
|
19
|
+
buildz.pyz: 简化python系统相关调用
|
20
|
+
buildz.base: 简化python类代码编写
|
21
|
+
buildz.pathz: 简化文件路径相关的代码编写
|
22
|
+
'''
|
23
|
+
|
24
|
+
from .argx import fetch as args
|
25
|
+
from .base import Base, WBase,Args
|
@@ -81,3 +81,32 @@ class With(Base):
|
|
81
81
|
return cls
|
82
82
|
|
83
83
|
pass
|
84
|
+
|
85
|
+
class Args(Base):
|
86
|
+
def size(self):
|
87
|
+
return len(self.args)+len(self.maps)
|
88
|
+
def str(self):
|
89
|
+
return f"<Args args={self.args}, maps={self.maps}>"
|
90
|
+
@property
|
91
|
+
def lists(self):
|
92
|
+
return self.args
|
93
|
+
@lists.setter
|
94
|
+
def lists(self, val):
|
95
|
+
self.args=val
|
96
|
+
@lists.deleter
|
97
|
+
def lists(self):
|
98
|
+
del self.args
|
99
|
+
@property
|
100
|
+
def dicts(self):
|
101
|
+
return self.maps
|
102
|
+
@dicts.setter
|
103
|
+
def dicts(self, val):
|
104
|
+
self.maps=val
|
105
|
+
@dicts.deleter
|
106
|
+
def dicts(self):
|
107
|
+
del self.maps
|
108
|
+
def init(self, args, maps):
|
109
|
+
self.args = args
|
110
|
+
self.maps = maps
|
111
|
+
|
112
|
+
pass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
测试结果:
|
3
|
-
|
3
|
+
训练模式大概能达到纯显卡(75W,更高的没测)二分之一或三分之一的性能,显存不够的可以用用
|
4
4
|
|
5
5
|
环境:
|
6
6
|
笔记本(游戏本)
|
@@ -78,6 +78,7 @@ Analyze
|
|
78
78
|
mean time cost using CPU: 16.668074309825897 sec
|
79
79
|
显存扣掉3GB
|
80
80
|
python -m buildz.gpuz.test.take_gpu_mem 12
|
81
|
+
python -m buildz.gpuz.test.test_resnet_demo train cuda,cache,cpu
|
81
82
|
No Used DictCache
|
82
83
|
train: 0 mean loss: 7.049219369888306 time: 32.67351007461548
|
83
84
|
train: 1 mean loss: 6.776383876800537 time: 26.468174934387207
|
@@ -99,8 +100,8 @@ Analyze
|
|
99
100
|
mean time cost using CPU: 6.312976717948914 sec
|
100
101
|
|
101
102
|
|
102
|
-
|
103
|
+
如果是测试模式,显存不够的时候,可以部分模型全放显存,部分全放内存,建议是卷积和注意力多放显存,线性层多放内存,因为线性层占用空间大
|
103
104
|
convs = [...]
|
104
105
|
linears = [...]
|
105
|
-
cache = DictCache(dvs_nets = [convs, linears])
|
106
|
+
cache = DictCache(dvs=[torch.device('cuda'), torch.device('cpu')], dvs_nets = [convs, linears])
|
106
107
|
...
|
@@ -16,9 +16,14 @@ pass
|
|
16
16
|
class DictCache(Base):
|
17
17
|
'''
|
18
18
|
用处:显存不够的时候,可以用本代码框架,代码会在forward和backward的时候自动把nets列表里需要计算的模型放入显存,不需要计算的放到内存,需要进行卷积训练的时候用处比较大(卷积计算显卡比CPU强太多)
|
19
|
-
|
19
|
+
暂不支持多显卡,因为开发者的电脑没有多显卡
|
20
|
+
DictCache实际提供两个功能:
|
21
|
+
1,缓存功能:模型需要使用的时候放显存,不需要的时候放内存
|
22
|
+
2,部分模型全放显存,部分模型全放内存,DictCache内部做传入数据的显存和内存的转换
|
23
|
+
两个功能可以同时使用,即部分模型用的时候放显存,不用的时候放内存,部分模型全放显存,部分模型全放内存
|
24
|
+
使用本框架需要使用者手动把模型拆成多个小模型,把小模型列表nets传入DictCache
|
20
25
|
训练时大概有纯显卡二分之一到三分之一的性能,起码比CPU好,尤其是进行卷积计算,比cpu好太多
|
21
|
-
训练完使用时的线性层则比CPU
|
26
|
+
训练完使用时的线性层则比CPU还慢,感觉没必要用,不过DictCache也提供了部分模型全放显存,部分模型全放内存的功能,显存不够的时候可以使用
|
22
27
|
DictCache里的Dict意思是传入的模型列表nets会存字典里,Cache就是用内存作为显存的缓存
|
23
28
|
代码实现原理是利用pytorch的几个勾子函数:
|
24
29
|
model.register_forward_pre_hook会在模型forward之前调用
|
@@ -29,6 +34,7 @@ class DictCache(Base):
|
|
29
34
|
hook_unpack是在反向梯度计算的时候取回forward存储的tensor
|
30
35
|
代码例子:
|
31
36
|
code in buildz.gpuz.test.demo:
|
37
|
+
|
32
38
|
from buildz.gpuz.torch import DictCache
|
33
39
|
import torch
|
34
40
|
from torch import nn,optim
|
@@ -69,6 +75,7 @@ class DictCache(Base):
|
|
69
75
|
torch.nn.utils.clip_grad_norm_(net.parameters(), max_norm=1.0)
|
70
76
|
opt.step()
|
71
77
|
cache = DictCache([torch.device('cuda'), torch.device('cpu')],models,opts,3,opt_step, [cuda_models,cpu_models])
|
78
|
+
|
72
79
|
# 训练:
|
73
80
|
[md.train() for md in models]
|
74
81
|
for inputs,targets in dataloader:
|
@@ -84,6 +91,7 @@ class DictCache(Base):
|
|
84
91
|
with torch.no_grad():
|
85
92
|
outputs = cache.do_forward(lambda:real_model(inputs))
|
86
93
|
print(outputs)
|
94
|
+
|
87
95
|
# 对比不用DictCache的时候
|
88
96
|
# 注意:模型放入DictCache之后会挂上勾子函数,不再用DictCache的时要先调用DictCache的remove方法
|
89
97
|
cache.remove()
|
@@ -100,7 +108,6 @@ class DictCache(Base):
|
|
100
108
|
torch.nn.utils.clip_grad_norm_(real_model.parameters(), max_norm=1.0)
|
101
109
|
full_opt.step()
|
102
110
|
print(loss.item())
|
103
|
-
|
104
111
|
# 测试:
|
105
112
|
inputs = torch.rand(1, dims).cuda()
|
106
113
|
with torch.no_grad():
|
@@ -0,0 +1,191 @@
|
|
1
|
+
#
|
2
|
+
import torch
|
3
|
+
from torch import nn
|
4
|
+
import threading as th
|
5
|
+
from ... import Base
|
6
|
+
import numpy as np
|
7
|
+
'''
|
8
|
+
注:
|
9
|
+
没写好,还不能用
|
10
|
+
'''
|
11
|
+
class MultiDictCache(Base):
|
12
|
+
def init(self, nets, win_sizes=None, backward_deal=None, fc_inputs_to=None, default_dv = None, default_win_size=1):
|
13
|
+
'''
|
14
|
+
nets: [
|
15
|
+
net
|
16
|
+
(net, run_dv)
|
17
|
+
(net, run_dv, opt)
|
18
|
+
(net, (run_dv, cache_dv), opt)
|
19
|
+
]
|
20
|
+
win_sizes: {
|
21
|
+
run_dv: size
|
22
|
+
}
|
23
|
+
'''
|
24
|
+
if default_dv is None:
|
25
|
+
default_dv = torch.device("cpu")
|
26
|
+
if fc_inputs_to is None:
|
27
|
+
fc_inputs_to = self.inputs_to
|
28
|
+
self.fc_inputs_to = fc_inputs_to
|
29
|
+
self.default_dv = default_dv
|
30
|
+
if win_sizes is None:
|
31
|
+
win_sizes = {}
|
32
|
+
self.default_win_size = default_win_size
|
33
|
+
self.win_sizes = win_sizes
|
34
|
+
#run_dvs = {}
|
35
|
+
rst = {}
|
36
|
+
nears = {}
|
37
|
+
for it in nets:
|
38
|
+
if type(it) not in (list,tuple):
|
39
|
+
it = [it]
|
40
|
+
if len(it)==1:
|
41
|
+
it.append(default_dv)
|
42
|
+
x = it[1]
|
43
|
+
if type(x) not in (list,tuple):
|
44
|
+
it[1] = [it[1]]
|
45
|
+
run_dvs.add(it[1][0])
|
46
|
+
net = it[0]
|
47
|
+
net_id = id(net0)
|
48
|
+
rst[net_id] = it
|
49
|
+
run_dv = it[1][0]
|
50
|
+
if run_dv not in nears:
|
51
|
+
nears[run_dv] = {}
|
52
|
+
nears[run_dv][net_id] = [-1,-1]
|
53
|
+
run_dvs[run_dv] = it
|
54
|
+
nets = rst
|
55
|
+
self.nets = nets
|
56
|
+
self.nears = nears
|
57
|
+
if type(dvs) not in (list,tuple):
|
58
|
+
dvs = [dvs]
|
59
|
+
self.gdv = dvs[0]
|
60
|
+
self.cdv = dvs[-1]
|
61
|
+
self.dvs = dvs
|
62
|
+
if dvs_nets is None:
|
63
|
+
dvs_nets = [[]]
|
64
|
+
if type(dvs_nets) not in (list, tuple):
|
65
|
+
dvs_nets = [dvs_nets]
|
66
|
+
dvs_nets = [k if k is not None else [] for k in dvs_nets]
|
67
|
+
ids_nocache = set()
|
68
|
+
fcs = []
|
69
|
+
for i in range(len(dvs_nets)):
|
70
|
+
for net in dvs_nets[i]:
|
71
|
+
fc = net.register_forward_pre_hook(self.hook_forward_pre_tensor(i))
|
72
|
+
fcs.append(fc)
|
73
|
+
ids_nocache.add(id(net))
|
74
|
+
self.ids_nocache = ids_nocache
|
75
|
+
self.dvs_nets = dvs_nets
|
76
|
+
fcs += [net.register_forward_pre_hook(self.hook_forward_pre) for net in nets if id(net) not in ids_nocache]
|
77
|
+
fcs+=[net.register_forward_hook(self.hook_forward) for net in nets if id(net) not in ids_nocache]
|
78
|
+
net = nets[0]
|
79
|
+
if hasattr(net, "register_full_backward_hook"):
|
80
|
+
fcs+=[net.register_full_backward_hook(self.hook_backward) for net in nets]
|
81
|
+
else:
|
82
|
+
fcs+=[net.register_backward_hook(self.hook_backward) for net in nets]
|
83
|
+
self.src_nets = nets
|
84
|
+
self.fcs = fcs
|
85
|
+
self.nets = {id(net):net for net in nets}
|
86
|
+
self.ctxs = {id(net):[] for net in nets}
|
87
|
+
if opts is not None:
|
88
|
+
opts = {id(net): opt for net,opt in zip(nets, opts)}
|
89
|
+
self.opts = opts
|
90
|
+
self.pools = []
|
91
|
+
self.win_size = win_size
|
92
|
+
self.backward_deal = backward_deal
|
93
|
+
self.nears = {id(net):[-1,-1] for net in nets}
|
94
|
+
self.curr = -1
|
95
|
+
self.done_backward = -1
|
96
|
+
self.no_caches = True
|
97
|
+
def remove(self):
|
98
|
+
[fc.remove() for fc in self.fcs]
|
99
|
+
def hook_forward_pre_tensor(self, i):
|
100
|
+
def hook(model, ins):
|
101
|
+
model.to(self.dvs[i])
|
102
|
+
ins = self.fc_inputs_to(ins, self.dvs[i])
|
103
|
+
return ins
|
104
|
+
return hook
|
105
|
+
@staticmethod
|
106
|
+
def inputs_to(inputs, dv):
|
107
|
+
if isinstance(inputs, torch.Tensor):
|
108
|
+
return inputs.to(dv)
|
109
|
+
inputs = tuple([k.to(dv) for k in inputs])
|
110
|
+
return inputs
|
111
|
+
def ctxs_to(self, i, dv):
|
112
|
+
if dv is None:
|
113
|
+
self.ctxs[i] = []
|
114
|
+
else:
|
115
|
+
self.ctxs[i] = [k.to(dv) for k in self.ctxs[i]]
|
116
|
+
def copy_backward(self, nid):
|
117
|
+
for c_id in self.pools:
|
118
|
+
self.nets[c_id].to(self.cdv)
|
119
|
+
self.ctxs_to(c_id, None)
|
120
|
+
self.pools = []
|
121
|
+
self.nets[nid].to(self.gdv)
|
122
|
+
self.ctxs_to(nid, self.gdv)
|
123
|
+
self.pools.append(nid)
|
124
|
+
next_id = nid
|
125
|
+
for i in range(self.win_size-1):
|
126
|
+
next_id = self.nears[next_id][1]
|
127
|
+
if next_id<0:
|
128
|
+
break
|
129
|
+
self.nets[next_id].to(self.gdv)
|
130
|
+
self.ctxs_to(next_id, self.gdv)
|
131
|
+
self.pools.append(next_id)
|
132
|
+
def copy_forward(self, nid, model):
|
133
|
+
for c_id in self.pools:
|
134
|
+
self.nets[c_id].to(self.cdv)
|
135
|
+
self.ctxs_to(c_id, self.cdv)
|
136
|
+
self.pools = []
|
137
|
+
model.to(self.gdv)
|
138
|
+
self.pools.append(nid)
|
139
|
+
next_id = nid
|
140
|
+
for i in range(self.win_size-1):
|
141
|
+
next_id = self.nears[next_id][0]
|
142
|
+
if next_id<0:
|
143
|
+
break
|
144
|
+
self.nets[next_id].to(self.gdv)
|
145
|
+
self.pools.append(next_id)
|
146
|
+
def hook_forward(self, model, ins, outs):
|
147
|
+
self.no_caches = True
|
148
|
+
def hook_forward_pre(self, model, ins):
|
149
|
+
self.no_caches = False
|
150
|
+
nid = id(model)
|
151
|
+
if nid not in self.pools:
|
152
|
+
self.copy_forward(nid, model)
|
153
|
+
if self.curr>=0:
|
154
|
+
self.nears[self.curr][0] = nid
|
155
|
+
self.curr = nid
|
156
|
+
return self.fc_inputs_to(ins, self.gdv)
|
157
|
+
def do_forward(self, fc):
|
158
|
+
self.no_caches = True
|
159
|
+
self.ctxs = {k:[] for k in self.nets}
|
160
|
+
with torch.autograd.graph.saved_tensors_hooks(self.hook_pack, self.hook_unpack):
|
161
|
+
rst = fc()
|
162
|
+
return rst.to(self.gdv)
|
163
|
+
def wrap_backward_deal(self, net_id):
|
164
|
+
if self.backward_deal is None:
|
165
|
+
return
|
166
|
+
self.backward_deal(self.nets[net_id], self.opts[net_id])
|
167
|
+
def hook_backward(self, model, grad_ins, grad_outs):
|
168
|
+
nid = id(model)
|
169
|
+
self.wrap_backward_deal(nid)
|
170
|
+
def hook_pack(self, dt):
|
171
|
+
if self.no_caches:
|
172
|
+
# 不做缓存,数据不处理
|
173
|
+
return -1, dt
|
174
|
+
index = self.curr
|
175
|
+
# forward时候为了后面计算梯度存的缓存,放到列表里方便转cpu和gpu
|
176
|
+
self.ctxs[index].append(dt)
|
177
|
+
return index, len(self.ctxs[index])-1
|
178
|
+
def hook_unpack(self, x):
|
179
|
+
nid = x[0]
|
180
|
+
if nid<0:
|
181
|
+
return x[1]
|
182
|
+
if nid not in self.pools:
|
183
|
+
self.copy_backward(nid)
|
184
|
+
dt = self.ctxs[nid][x[1]]
|
185
|
+
if self.curr>=0:
|
186
|
+
self.nears[self.curr][1] = nid
|
187
|
+
self.curr = nid
|
188
|
+
return dt
|
189
|
+
def do_backward(self, fc):
|
190
|
+
self.curr = -1
|
191
|
+
fc()
|
@@ -79,7 +79,7 @@ class GWDealer(proxy.ProxyDealer):
|
|
79
79
|
|
80
80
|
class Gateway(proxy.Proxy):
|
81
81
|
'''
|
82
|
-
类似nginx
|
82
|
+
类似nginx的反向代理
|
83
83
|
'''
|
84
84
|
def init(self, addr, rules, fp_cert=None, fp_prv=None, password = None,listen=5, record=None, cafile=None, capath=None, cadata=None,check_hostname=True):
|
85
85
|
super().init(addr, listen, record)
|
@@ -87,7 +87,7 @@ def http_encode_send(http_type, url, headers=None, data_size=0, protocol = "HTTP
|
|
87
87
|
port = 0
|
88
88
|
if len(addrs)>1:
|
89
89
|
port = int(addrs[1])
|
90
|
-
quest= f"{http_type.upper()} {url} {protocol}".encode("utf-8")
|
90
|
+
quest= f"{http_type.upper()} {url} {protocol}".encode("utf-8")
|
91
91
|
if headers is None:
|
92
92
|
headers = {}
|
93
93
|
if 'Host' not in headers:
|
@@ -103,8 +103,8 @@ pass
|
|
103
103
|
def chunked_encode(data):
|
104
104
|
n = hex(len(data))[2:].encode()
|
105
105
|
return n+b"\r\n"+data+b"\r\n"
|
106
|
-
def readable(skt):
|
107
|
-
(rlist,wlist,elist)=select.select([skt],[],[],
|
106
|
+
def readable(skt,timeout=0):
|
107
|
+
(rlist,wlist,elist)=select.select([skt],[],[],timeout)
|
108
108
|
return len(rlist)>0
|
109
109
|
def chunked_data(skt):
|
110
110
|
dt = skt.readline().strip().decode()
|
@@ -250,4 +250,4 @@ class HttpMonitor(Base):
|
|
250
250
|
if n==0:
|
251
251
|
break
|
252
252
|
fc_done()
|
253
|
-
return
|
253
|
+
return line, headers, data
|
@@ -49,7 +49,6 @@ class ProxyDealer(Base):
|
|
49
49
|
self.record.response(line, headers, data_size)
|
50
50
|
protocol, code, rsp_text = line
|
51
51
|
bts = mhttp.http_encode_rsp(code, rsp_text, headers, data_size, protocol)
|
52
|
-
print(f"[TESTZ] bts send: {bts}")
|
53
52
|
skt_cli.send(bts)
|
54
53
|
if data_size>0:
|
55
54
|
data = skt.read(data_size)
|
@@ -166,15 +165,20 @@ class Proxy(Base):
|
|
166
165
|
self.skt.close()
|
167
166
|
def make_dealer(self, skt, addr):
|
168
167
|
return ProxyDealer(skt, record=self.record.clone())
|
169
|
-
def call(self):
|
168
|
+
def call(self, wait_time=0.1):
|
170
169
|
self.running=True
|
171
170
|
skt = socket.socket()
|
172
171
|
skt.bind(self.addr)
|
173
172
|
skt.listen(self.listen)
|
174
173
|
self.skt = skt
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
174
|
+
try:
|
175
|
+
while self.running:
|
176
|
+
while not mhttp.readable(self.skt,wait_time):
|
177
|
+
pass
|
178
|
+
skt,addr = self.skt.accept()
|
179
|
+
deal = self.make_dealer(skt, addr)
|
180
|
+
th = threading.Thread(target=deal,daemon=True)
|
181
|
+
th.start()
|
182
|
+
self.ths.append(th)
|
183
|
+
finally:
|
184
|
+
self.close()
|
@@ -6,6 +6,12 @@ class MsgRecord(Base):
|
|
6
6
|
要多线程安全,可以考虑:
|
7
7
|
1,修改clone方法,新建一个MsgRecord实例而非返回self,并且自己加锁
|
8
8
|
2,通过threading.current_thread().ident获取线程id,然后做相应处理
|
9
|
+
需要实现的方法:
|
10
|
+
_start: 新的请求/响应报文进来时调用,传入头部信息等
|
11
|
+
_add: 传入报文体数据
|
12
|
+
_add_chunk: 传入chunk数据
|
13
|
+
_finish: 请求/响应报文数据已全部传入,看是否需要做什么处理
|
14
|
+
实现可参考MsgLog
|
9
15
|
"""
|
10
16
|
TypeReq ="request"
|
11
17
|
TypeRsp = "response"
|
@@ -17,6 +23,10 @@ class MsgRecord(Base):
|
|
17
23
|
self.ssl = False
|
18
24
|
self.ssl_update()
|
19
25
|
def set_ssl(self, ssl=True):
|
26
|
+
'''
|
27
|
+
声明当前连接转ssl或者从ssl转tcp,看是否需要在ssl_update做什么处理
|
28
|
+
不管连接是ssl还是tcp,传入start,add,add_chunk方法里的数据都是明文
|
29
|
+
'''
|
20
30
|
self.ssl = ssl
|
21
31
|
self.ssl_update()
|
22
32
|
def start(self, msg_type, line, headers, data_size):
|
@@ -47,7 +57,7 @@ class MsgRecord(Base):
|
|
47
57
|
protocol: 应该都是HTTP/1.1或HTTP/1.0
|
48
58
|
code: 响应数据编码,200、404等
|
49
59
|
rsp_text: 响应数据文本, OK, Not Found等
|
50
|
-
headers: http
|
60
|
+
headers: http头部信息, dict(字典)数据
|
51
61
|
data_size: 当前报文的报文体数据大小(不包括chunk部分)
|
52
62
|
"""
|
53
63
|
pass
|
@@ -17,11 +17,11 @@ class MiddleServer(Base):
|
|
17
17
|
self.running = False
|
18
18
|
self.wait = wait
|
19
19
|
self.pairs = {}
|
20
|
-
self.lock = threading.Lock()
|
20
|
+
#self.lock = threading.Lock()
|
21
21
|
def close_pair(self, a, b):
|
22
|
-
with self.lock:
|
23
|
-
|
24
|
-
|
22
|
+
#with self.lock:
|
23
|
+
del self.pairs[id(a)]
|
24
|
+
del self.pairs[id(b)]
|
25
25
|
log("close").info(f"pair {a.getpeername()}, {b.getpeername()} close")
|
26
26
|
for c in (a,b):
|
27
27
|
try:
|
@@ -42,17 +42,9 @@ class MiddleServer(Base):
|
|
42
42
|
log.warn(f"traceback: {traceback.format_exc()}")
|
43
43
|
self.close_pair(skt_read, skt_write)
|
44
44
|
def connects(self):
|
45
|
-
with self.lock:
|
46
|
-
|
45
|
+
#with self.lock:
|
46
|
+
arr = [v[0] for k,v in self.pairs.items()]
|
47
47
|
return arr
|
48
|
-
def deals(self):
|
49
|
-
while self.running:
|
50
|
-
if len(self.pairs)==0:
|
51
|
-
time.sleep(self.wait)
|
52
|
-
continue
|
53
|
-
(rlist,wlist,elist)=select.select(self.connects(),[],[],0)
|
54
|
-
for skt in rlist:
|
55
|
-
self.deal(skt)
|
56
48
|
def add(self, skt_cli, addr):
|
57
49
|
try:
|
58
50
|
skt_srv = socket.socket()
|
@@ -63,20 +55,35 @@ class MiddleServer(Base):
|
|
63
55
|
skt_cli.close()
|
64
56
|
return
|
65
57
|
log("connect").info(f"build pair from {skt_cli.getpeername()} to {skt_srv.getpeername()}")
|
66
|
-
with self.lock:
|
67
|
-
|
68
|
-
|
58
|
+
#with self.lock:
|
59
|
+
self.pairs[id(skt_cli)] = (skt_cli, skt_srv)
|
60
|
+
self.pairs[id(skt_srv)] = (skt_srv, skt_cli)
|
69
61
|
def call(self, fc_stop = None):
|
70
|
-
if fc_stop is None:
|
71
|
-
fc_stop = lambda :False
|
72
62
|
self.running=True
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
63
|
+
if fc_stop is None:
|
64
|
+
return self.waits_and_deals()
|
65
|
+
else:
|
66
|
+
threading.Thread(target=self.waits_and_deals,daemon=True).start()
|
67
|
+
try:
|
68
|
+
while not fc_stop():
|
69
|
+
time.sleep(1.0)
|
70
|
+
finally:
|
71
|
+
self.running=False
|
72
|
+
def waits_and_deals(self):
|
73
|
+
skt = socket.socket()
|
74
|
+
skt.bind(self.addr)
|
75
|
+
skt.listen(self.listen)
|
76
|
+
self.skt = skt
|
77
|
+
while self.running:
|
78
|
+
skts = self.connects()
|
79
|
+
skts.append(self.skt)
|
80
|
+
(rlist,wlist,elist)=select.select(skts,[],[],self.wait)
|
81
|
+
for skt in rlist:
|
82
|
+
if skt == self.skt:
|
83
|
+
_skt,addr = self.skt.accept()
|
84
|
+
self.add(_skt, addr)
|
85
|
+
else:
|
86
|
+
self.deal(skt)
|
80
87
|
def waits(self):
|
81
88
|
skt = socket.socket()
|
82
89
|
skt.bind(self.addr)
|
@@ -85,6 +92,14 @@ class MiddleServer(Base):
|
|
85
92
|
while self.running:
|
86
93
|
skt,addr = self.skt.accept()
|
87
94
|
self.add(skt, addr)
|
95
|
+
def deals(self):
|
96
|
+
while self.running:
|
97
|
+
if len(self.pairs)==0:
|
98
|
+
time.sleep(self.wait)
|
99
|
+
continue
|
100
|
+
(rlist,wlist,elist)=select.select(self.connects(),[],[],0)
|
101
|
+
for skt in rlist:
|
102
|
+
self.deal(skt)
|
88
103
|
|
89
104
|
pass
|
90
105
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
#print("xf.__init__")
|
4
|
+
from .readz import loads, load, loadf, loads_args, loadx, is_args, loadxf
|
5
|
+
from .writez import dumps, dump, dumpf, dumpx, dumpxf
|
6
|
+
from .file import *
|
7
|
+
from .mapz import *
|
8
|
+
from .xargs import fetch as args
|
9
|
+
|
10
|
+
try:
|
11
|
+
# C++加速代码
|
12
|
+
#from .cpp import pcxf
|
13
|
+
#print(f"pcxf:", pcxf)
|
14
|
+
#print(f"pcxf.loads:", dir(pcxf))
|
15
|
+
from buildz.xf.cpp.pcxf import loads, loadx
|
16
|
+
loads_args = loadx
|
17
|
+
except Exception as exp:
|
18
|
+
#print("init not cpp:",exp)
|
19
|
+
pass
|
20
|
+
pass
|
21
|
+
__author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
from buildz import Base, Args
|
3
|
+
# class Args(Base):
|
4
|
+
# def size(self):
|
5
|
+
# return len(self.args)+len(self.maps)
|
6
|
+
# def str(self):
|
7
|
+
# return f"<Args args={self.args}, maps={self.maps}>"
|
8
|
+
# @property
|
9
|
+
# def lists(self):
|
10
|
+
# return self.args
|
11
|
+
# @lists.setter
|
12
|
+
# def lists(self, val):
|
13
|
+
# self.args=val
|
14
|
+
# @lists.deleter
|
15
|
+
# def lists(self):
|
16
|
+
# del self.args
|
17
|
+
# @property
|
18
|
+
# def dicts(self):
|
19
|
+
# return self.maps
|
20
|
+
# @dicts.setter
|
21
|
+
# def dicts(self, val):
|
22
|
+
# self.maps=val
|
23
|
+
# @dicts.deleter
|
24
|
+
# def dicts(self):
|
25
|
+
# del self.maps
|
26
|
+
# def init(self, args, maps):
|
27
|
+
# self.args = args
|
28
|
+
# self.maps = maps
|
29
|
+
|
30
|
+
# pass
|
@@ -0,0 +1,24 @@
|
|
1
|
+
.PHONY: cpp_depend ALL
|
2
|
+
TARGETLIB = libcxf.a
|
3
|
+
TARGETLIB_CPP = cxf
|
4
|
+
TARGETDYN=cxf.so
|
5
|
+
SRC=$(wildcard loaderz/*.cpp) $(wildcard loaderz/**/*.cpp)
|
6
|
+
OBJ=$(SRC:.cpp=.o)
|
7
|
+
ALL:$(TARGETLIB) $(TARGETDYN)
|
8
|
+
echo "$(SRC)"
|
9
|
+
|
10
|
+
$(TARGETDYN):$(OBJ)
|
11
|
+
g++ -O3 -fPIC -shared -o $@ $^ -static-libstdc++ -static-libgcc
|
12
|
+
$(TARGETLIB): $(OBJ)
|
13
|
+
ar -rc $@ $^
|
14
|
+
test: $(OBJ)
|
15
|
+
g++ -O3 $^ -o $@
|
16
|
+
%.o:%.cpp
|
17
|
+
g++ -O3 -fPIC -Wall -g -c $< -o $@
|
18
|
+
|
19
|
+
include cpp_depend
|
20
|
+
cpp_depend:
|
21
|
+
g++ -MM $(SRC) > cpp_depend
|
22
|
+
|
23
|
+
clean:
|
24
|
+
rm $(OBJ)
|