buildz 0.9.8__tar.gz → 0.9.10__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.
Files changed (464) hide show
  1. {buildz-0.9.8/buildz.egg-info → buildz-0.9.10}/PKG-INFO +1 -1
  2. {buildz-0.9.8 → buildz-0.9.10}/buildz/_dz/conf.py +54 -1
  3. buildz-0.9.10/buildz/_dz/oconf.py +89 -0
  4. {buildz-0.9.8 → buildz-0.9.10}/buildz/argx.py +1 -0
  5. {buildz-0.9.8 → buildz-0.9.10}/buildz/confz.py +7 -2
  6. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/orm.py +50 -5
  7. buildz-0.9.10/buildz/dz.py +5 -0
  8. {buildz-0.9.8 → buildz-0.9.10}/buildz/fz/__init__.py +1 -0
  9. buildz-0.9.10/buildz/fz/csv.py +36 -0
  10. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/dm1.py +4 -1
  11. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/torch/__init__.py +9 -0
  12. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/torch/middle_base.py +26 -5
  13. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/torch/middle_cache.py +41 -0
  14. {buildz-0.9.8 → buildz-0.9.10}/buildz/logz.py +27 -19
  15. {buildz-0.9.8 → buildz-0.9.10}/buildz/path.py +9 -5
  16. {buildz-0.9.8 → buildz-0.9.10}/buildz/tools.py +1 -1
  17. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/code.cpp +12 -0
  18. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/setup_mingw32.py +8 -1
  19. {buildz-0.9.8 → buildz-0.9.10/buildz.egg-info}/PKG-INFO +1 -1
  20. {buildz-0.9.8 → buildz-0.9.10}/buildz.egg-info/SOURCES.txt +2 -0
  21. {buildz-0.9.8 → buildz-0.9.10}/setup.py +1 -1
  22. buildz-0.9.8/buildz/dz.py +0 -4
  23. {buildz-0.9.8 → buildz-0.9.10}/LICENSE +0 -0
  24. {buildz-0.9.8 → buildz-0.9.10}/MANIFEST.in +0 -0
  25. {buildz-0.9.8 → buildz-0.9.10}/README.md +0 -0
  26. {buildz-0.9.8 → buildz-0.9.10}/buildz/__init__.py +0 -0
  27. {buildz-0.9.8 → buildz-0.9.10}/buildz/__main__.py +0 -0
  28. {buildz-0.9.8 → buildz-0.9.10}/buildz/_dz/mapz.py +0 -0
  29. {buildz-0.9.8 → buildz-0.9.10}/buildz/_dz/omapz.py +0 -0
  30. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/__init__.py +0 -0
  31. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/argz.py +0 -0
  32. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/callz.py +0 -0
  33. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/conf_argz.py +0 -0
  34. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/conf_callz.py +0 -0
  35. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/evalx.py +0 -0
  36. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/init.py +0 -0
  37. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/test.py +0 -0
  38. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz/test_call.py +0 -0
  39. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/__init__.py +0 -0
  40. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/argz.py +0 -0
  41. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/build.py +0 -0
  42. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/callz.py +0 -0
  43. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/evalx.py +0 -0
  44. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/test.py +0 -0
  45. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/test_obj.py +0 -0
  46. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/tests/conf.js +0 -0
  47. {buildz-0.9.8 → buildz-0.9.10}/buildz/argz_bk/testx.py +0 -0
  48. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/__init__.py +0 -0
  49. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/cache.py +0 -0
  50. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/config.py +0 -0
  51. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/dbs.py +0 -0
  52. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/deal.py +0 -0
  53. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/deal_list.py +0 -0
  54. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/deal_type.py +0 -0
  55. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/defs.py +0 -0
  56. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/factory.py +0 -0
  57. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/init.py +0 -0
  58. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/log.py +0 -0
  59. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/request.py +0 -0
  60. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/run.py +0 -0
  61. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/save.py +0 -0
  62. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/cache/cache.js +0 -0
  63. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/config/base.js +0 -0
  64. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/config/config.js +0 -0
  65. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/data/fp.js +0 -0
  66. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/data/item1.js +0 -0
  67. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/data/item2.js +0 -0
  68. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/res/data/test.js +0 -0
  69. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/test.py +0 -0
  70. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/test/xtest.py +0 -0
  71. {buildz-0.9.8 → buildz-0.9.10}/buildz/auto/verify.py +0 -0
  72. {buildz-0.9.8 → buildz-0.9.10}/buildz/base.py +0 -0
  73. {buildz-0.9.8 → buildz-0.9.10}/buildz/cachez/__init__.py +0 -0
  74. {buildz-0.9.8 → buildz-0.9.10}/buildz/cachez/cache.py +0 -0
  75. {buildz-0.9.8 → buildz-0.9.10}/buildz/cmd.py +0 -0
  76. {buildz-0.9.8 → buildz-0.9.10}/buildz/confz_test/argx.js +0 -0
  77. {buildz-0.9.8 → buildz-0.9.10}/buildz/confz_test/conf.js +0 -0
  78. {buildz-0.9.8 → buildz-0.9.10}/buildz/confz_test/test.js +0 -0
  79. {buildz-0.9.8 → buildz-0.9.10}/buildz/confz_test/test.py +0 -0
  80. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/__init__.py +0 -0
  81. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/__main__.py +0 -0
  82. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/__init__.py +0 -0
  83. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/basez.py +0 -0
  84. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/clickhousez.py +0 -0
  85. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/lib/readme +0 -0
  86. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/mysqlz.py +0 -0
  87. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/oraclez.py +0 -0
  88. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/postgresqlz.py +0 -0
  89. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/sqlite3z.py +0 -0
  90. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/dv/structz.py +0 -0
  91. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/install.txt +0 -0
  92. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/run.conf +0 -0
  93. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/runz.py +0 -0
  94. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/sc.py +0 -0
  95. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/subrun.py +0 -0
  96. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/subsc.py +0 -0
  97. {buildz-0.9.8 → buildz-0.9.10}/buildz/db/tls.py +0 -0
  98. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/ioc/deal.py +0 -0
  99. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/ioc/help.py +0 -0
  100. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/myers/deal.py +0 -0
  101. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/myers/help.py +0 -0
  102. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/conf/ioc.js +0 -0
  103. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/conf/main.js +0 -0
  104. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/conf/myers.js +0 -0
  105. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/conf/search.js +0 -0
  106. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/conf/xf.js +0 -0
  107. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/help/default.js +0 -0
  108. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/help/ioc.js +0 -0
  109. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/help/myers.js +0 -0
  110. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/help/search.js +0 -0
  111. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/help/xf.js +0 -0
  112. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/res/test.js +0 -0
  113. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/search/deal.py +0 -0
  114. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/search/help.py +0 -0
  115. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/test.py +0 -0
  116. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/xf/deal.py +0 -0
  117. {buildz-0.9.8 → buildz-0.9.10}/buildz/demo/xf/help.py +0 -0
  118. {buildz-0.9.8 → buildz-0.9.10}/buildz/evalz/__init__.py +0 -0
  119. {buildz-0.9.8 → buildz-0.9.10}/buildz/evalz/evalz.py +0 -0
  120. {buildz-0.9.8 → buildz-0.9.10}/buildz/evalz/res/default.js +0 -0
  121. {buildz-0.9.8 → buildz-0.9.10}/buildz/evalz/test.py +0 -0
  122. {buildz-0.9.8 → buildz-0.9.10}/buildz/fz/dirz.py +0 -0
  123. {buildz-0.9.8 → buildz-0.9.10}/buildz/fz/fhs.py +0 -0
  124. {buildz-0.9.8 → buildz-0.9.10}/buildz/fz/fio.py +0 -0
  125. {buildz-0.9.8 → buildz-0.9.10}/buildz/fz/lsf.py +0 -0
  126. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/analyze.py +0 -0
  127. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/demo.py +0 -0
  128. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/dm.py +0 -0
  129. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/report.txt +0 -0
  130. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/take_gpu_mem.py +0 -0
  131. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/test_atten_demo.py +0 -0
  132. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/test_linear_demo.py +0 -0
  133. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/test_multi_demo.py +0 -0
  134. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/test/test_resnet_demo.py +0 -0
  135. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/torch/dict_middle.py +0 -0
  136. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/torch/multi_dict_middle.py +0 -0
  137. {buildz-0.9.8 → buildz-0.9.10}/buildz/gpuz/torch/seq_middle.py +0 -0
  138. {buildz-0.9.8 → buildz-0.9.10}/buildz/html/__init__.py +0 -0
  139. {buildz-0.9.8 → buildz-0.9.10}/buildz/html/test/demo.html +0 -0
  140. {buildz-0.9.8 → buildz-0.9.10}/buildz/html/test/test.py +0 -0
  141. {buildz-0.9.8 → buildz-0.9.10}/buildz/html/xml.py +0 -0
  142. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/__init__.py +0 -0
  143. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/base.py +0 -0
  144. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/init.py +0 -0
  145. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc/base.py +0 -0
  146. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc/conf.py +0 -0
  147. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc/confs.py +0 -0
  148. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc/decorator.py +0 -0
  149. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc/loads.py +0 -0
  150. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc/single.py +0 -0
  151. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/base.py +0 -0
  152. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/branch.py +0 -0
  153. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/call.py +0 -0
  154. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/calls.py +0 -0
  155. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
  156. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  157. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  158. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  159. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  160. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  161. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  162. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  163. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  164. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  165. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  166. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  167. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  168. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  169. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  170. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  171. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  172. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  173. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  174. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  175. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  176. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
  177. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  178. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  179. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  180. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/deal.py +0 -0
  181. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/demo.py +0 -0
  182. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/env.py +0 -0
  183. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/init.py +0 -0
  184. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/ioc.py +0 -0
  185. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/iocf.py +0 -0
  186. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/join.py +0 -0
  187. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/list.py +0 -0
  188. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/map.py +0 -0
  189. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/mcall.py +0 -0
  190. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/obj.py +0 -0
  191. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/ovar.py +0 -0
  192. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/ref.py +0 -0
  193. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/refs.py +0 -0
  194. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/val.py +0 -0
  195. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/var.py +0 -0
  196. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/ioc_deal/xfile.py +0 -0
  197. {buildz-0.9.8 → buildz-0.9.10}/buildz/ioc/wrap.py +0 -0
  198. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/__init__.py +0 -0
  199. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/base.py +0 -0
  200. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf/base.py +0 -0
  201. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf/conf.py +0 -0
  202. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf/mg.py +0 -0
  203. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf/unit.py +0 -0
  204. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf/up.py +0 -0
  205. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/attr.py +0 -0
  206. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/base.py +0 -0
  207. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/call.py +0 -0
  208. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/cvar.py +0 -0
  209. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/deal.py +0 -0
  210. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/env.py +0 -0
  211. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/ioc.py +0 -0
  212. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/method.py +0 -0
  213. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/obj.py +0 -0
  214. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/ref.py +0 -0
  215. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/conf_deal/val.py +0 -0
  216. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/init.py +0 -0
  217. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/__init__.py +0 -0
  218. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/base.py +0 -0
  219. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/builds.py +0 -0
  220. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/confs.py +0 -0
  221. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/datas.py +0 -0
  222. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/dataset.py +0 -0
  223. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/encapes.py +0 -0
  224. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/envs.py +0 -0
  225. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/ids.py +0 -0
  226. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/init.py +0 -0
  227. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/mg.py +0 -0
  228. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/single.py +0 -0
  229. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/sys_envs.py +0 -0
  230. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/tdata.py +0 -0
  231. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/tdict.py +0 -0
  232. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/unit.py +0 -0
  233. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc/vars.py +0 -0
  234. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc_deal/base.py +0 -0
  235. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc_deal/deal.py +0 -0
  236. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc_deal/ioc.py +0 -0
  237. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc_deal/obj.py +0 -0
  238. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc_deal/ref.py +0 -0
  239. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/ioc_deal/val.py +0 -0
  240. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/test/test.py +0 -0
  241. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/wrap/base.py +0 -0
  242. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/wrap/default_wraps.py +0 -0
  243. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/wrap/env.py +0 -0
  244. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/wrap/obj.py +0 -0
  245. {buildz-0.9.8 → buildz-0.9.10}/buildz/iocz/wrap/wraps.py +0 -0
  246. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/Test.javap +0 -0
  247. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/build +0 -0
  248. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/build.bat +0 -0
  249. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/clean +0 -0
  250. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/clean.bat +0 -0
  251. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/com/buildz/Conf.javap +0 -0
  252. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/com/buildz/ConfUtil.javap +0 -0
  253. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/com/buildz/Confz.javap +0 -0
  254. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/com/buildz/Utils.javap +0 -0
  255. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/fps.js +0 -0
  256. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/jv +0 -0
  257. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/jv.bat +0 -0
  258. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/jvc +0 -0
  259. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/jvc.bat +0 -0
  260. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/run +0 -0
  261. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/run.bat +0 -0
  262. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/confz/test.js +0 -0
  263. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/defs.py +0 -0
  264. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/dm.py +0 -0
  265. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/fcs.py +0 -0
  266. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/jsc.py +0 -0
  267. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/main.py +0 -0
  268. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/rn.py +0 -0
  269. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/jvp/util.py +0 -0
  270. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/note +0 -0
  271. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/Test.java +0 -0
  272. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/all.sh +0 -0
  273. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/com/buildz/xf/Args.java +0 -0
  274. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/com/buildz/xf/Loader.java +0 -0
  275. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/com/buildz/xf/LoaderJNI.java +0 -0
  276. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/com/buildz/xf/cpp/com_buildz_xf_LoaderJNI.h +0 -0
  277. {buildz-0.9.8 → buildz-0.9.10}/buildz/jv/xf/com/buildz/xf/cpp/jxf.cpp +0 -0
  278. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/__init__.py +0 -0
  279. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/__init__.py +0 -0
  280. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/caps.py +0 -0
  281. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/gateway.py +0 -0
  282. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/mhttp.py +0 -0
  283. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/mhttps.py +0 -0
  284. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/proxy.py +0 -0
  285. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/mhttp/record.py +0 -0
  286. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/sslz/__init__.py +0 -0
  287. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/sslz/gen.py +0 -0
  288. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/sslz/gen.pyi +0 -0
  289. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/tcp/__init__.py +0 -0
  290. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/tcp/__main__.py +0 -0
  291. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/tcp/middle.py +0 -0
  292. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/test/__main__.py +0 -0
  293. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/test/test.py +0 -0
  294. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/test/test_cli.py +0 -0
  295. {buildz-0.9.8 → buildz-0.9.10}/buildz/netz/test/test_gw.py +0 -0
  296. {buildz-0.9.8 → buildz-0.9.10}/buildz/pathz.py +0 -0
  297. {buildz-0.9.8 → buildz-0.9.10}/buildz/pyz.py +0 -0
  298. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/__main__.py +0 -0
  299. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/lst.py +0 -0
  300. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/oldversion/run.py +0 -0
  301. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/oldversion/thrun.py +0 -0
  302. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/subchild.py +0 -0
  303. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/subrun.py +0 -0
  304. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/test/inc.py +0 -0
  305. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/test/x.js +0 -0
  306. {buildz-0.9.8 → buildz-0.9.10}/buildz/sc/test/x.py +0 -0
  307. {buildz-0.9.8 → buildz-0.9.10}/buildz/threads/__init__.py +0 -0
  308. {buildz-0.9.8 → buildz-0.9.10}/buildz/threads/impl.py +0 -0
  309. {buildz-0.9.8 → buildz-0.9.10}/buildz/threads/pool.py +0 -0
  310. {buildz-0.9.8 → buildz-0.9.10}/buildz/threads/test.py +0 -0
  311. {buildz-0.9.8 → buildz-0.9.10}/buildz/tls.py +0 -0
  312. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/__init__.py +0 -0
  313. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/code.py +0 -0
  314. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/filediff.py +0 -0
  315. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/myers_diff.py +0 -0
  316. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/test_xfind.py +0 -0
  317. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/time/__init__.py +0 -0
  318. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/time/timez.py +0 -0
  319. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/tio/__init__.py +0 -0
  320. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/tio/base.py +0 -0
  321. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/tio/getch.py +0 -0
  322. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/tio/lx.py +0 -0
  323. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/tio/test.py +0 -0
  324. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/tio/win.py +0 -0
  325. {buildz-0.9.8 → buildz-0.9.10}/buildz/tz/xfind.py +0 -0
  326. {buildz-0.9.8 → buildz-0.9.10}/buildz/unittest/__init__.py +0 -0
  327. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/__init__.py +0 -0
  328. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/__main__.py +0 -0
  329. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/base.py +0 -0
  330. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/code.py +0 -0
  331. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/Makefile +0 -0
  332. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/README.txt +0 -0
  333. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/clean.py +0 -0
  334. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/base.h +0 -0
  335. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/base_deal.h +0 -0
  336. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/buffer.cpp +0 -0
  337. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/buffer.h +0 -0
  338. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/callback.h +0 -0
  339. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/callback_demo.cpp +0 -0
  340. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/callback_demo.h +0 -0
  341. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/code.h +0 -0
  342. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/cxf.h +0 -0
  343. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/dict.cpp +0 -0
  344. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/dict.h +0 -0
  345. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/kv.h +0 -0
  346. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/list.cpp +0 -0
  347. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/list.h +0 -0
  348. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/listdict.cpp +0 -0
  349. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/listdict.h +0 -0
  350. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/lr.cpp +0 -0
  351. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/lr.h +0 -0
  352. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/lrval.cpp +0 -0
  353. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/lrval.h +0 -0
  354. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/next.cpp +0 -0
  355. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/next.h +0 -0
  356. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/reval.h +0 -0
  357. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/spt.cpp +0 -0
  358. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/spt.h +0 -0
  359. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/str.cpp +0 -0
  360. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/deal/str.h +0 -0
  361. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/exp.h +0 -0
  362. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/init.cpp +0 -0
  363. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/init.h +0 -0
  364. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/item.h +0 -0
  365. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/mg.cpp +0 -0
  366. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/mg.h +0 -0
  367. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/loaderz/test.cpp +0 -0
  368. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/pc.cpp +0 -0
  369. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/pc.h +0 -0
  370. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/pcxf.pyx +0 -0
  371. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/setup.py +0 -0
  372. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/cpp/tstcxf.py +0 -0
  373. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/file.py +0 -0
  374. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/base.py +0 -0
  375. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/buffer.py +0 -0
  376. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/listz.py +0 -0
  377. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/lr.py +0 -0
  378. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/lrval.py +0 -0
  379. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/mapz.py +0 -0
  380. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/nextz.py +0 -0
  381. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/reval.py +0 -0
  382. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/setz.py +0 -0
  383. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/spc.py +0 -0
  384. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/spt.py +0 -0
  385. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/deal/strz.py +0 -0
  386. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/exp.py +0 -0
  387. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/item.py +0 -0
  388. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/mg.py +0 -0
  389. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loader/pos.py +0 -0
  390. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/base.py +0 -0
  391. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/buffer.py +0 -0
  392. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/listmapz.py +0 -0
  393. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/listz.py +0 -0
  394. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/lr.py +0 -0
  395. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/lrval.py +0 -0
  396. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/mapz.py +0 -0
  397. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/nextz.py +0 -0
  398. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/reval.py +0 -0
  399. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/setz.py +0 -0
  400. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/spt.py +0 -0
  401. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/deal/strz.py +0 -0
  402. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/exp.py +0 -0
  403. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/item.py +0 -0
  404. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/mg.py +0 -0
  405. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/pos.py +0 -0
  406. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/test.py +0 -0
  407. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz/test1.py +0 -0
  408. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/base.py +0 -0
  409. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/buffer.py +0 -0
  410. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
  411. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
  412. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
  413. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
  414. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
  415. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
  416. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
  417. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
  418. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
  419. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
  420. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/exp.py +0 -0
  421. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/item.py +0 -0
  422. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/mg.py +0 -0
  423. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/pos.py +0 -0
  424. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/test.py +0 -0
  425. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/loaderz_nexp/test1.py +0 -0
  426. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/mapz.py +0 -0
  427. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/read.py +0 -0
  428. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/readz.py +0 -0
  429. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/readz_nexp.py +0 -0
  430. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/stack.py +0 -0
  431. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/write.py +0 -0
  432. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/base.py +0 -0
  433. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/conf.py +0 -0
  434. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/deal/jsonval.py +0 -0
  435. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/deal/listmapz.py +0 -0
  436. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/deal/listz.py +0 -0
  437. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/deal/mapz.py +0 -0
  438. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/deal/reval.py +0 -0
  439. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/deal/strz.py +0 -0
  440. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/itemz.py +0 -0
  441. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writer/mg.py +0 -0
  442. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/base.py +0 -0
  443. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/conf.py +0 -0
  444. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/deal/jsonval.py +0 -0
  445. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/deal/listmapz.py +0 -0
  446. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/deal/listz.py +0 -0
  447. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/deal/mapz.py +0 -0
  448. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/deal/reval.py +0 -0
  449. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/deal/strz.py +0 -0
  450. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/itemz.py +0 -0
  451. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/mg.py +0 -0
  452. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/test.py +0 -0
  453. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writerz/testx.py +0 -0
  454. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/writez.py +0 -0
  455. {buildz-0.9.8 → buildz-0.9.10}/buildz/xf/xargs.py +0 -0
  456. {buildz-0.9.8 → buildz-0.9.10}/buildz/xz/__init__.py +0 -0
  457. {buildz-0.9.8 → buildz-0.9.10}/buildz/xz/conf.js +0 -0
  458. {buildz-0.9.8 → buildz-0.9.10}/buildz/xz/data.js +0 -0
  459. {buildz-0.9.8 → buildz-0.9.10}/buildz/xz/test.py +0 -0
  460. {buildz-0.9.8 → buildz-0.9.10}/buildz/xz/trs.py +0 -0
  461. {buildz-0.9.8 → buildz-0.9.10}/buildz.egg-info/dependency_links.txt +0 -0
  462. {buildz-0.9.8 → buildz-0.9.10}/buildz.egg-info/top_level.txt +0 -0
  463. {buildz-0.9.8 → buildz-0.9.10}/notes/notes.txt +0 -0
  464. {buildz-0.9.8 → buildz-0.9.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.9.8
3
+ Version: 0.9.10
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
@@ -12,7 +12,49 @@ def dzkeys(key, spt):
12
12
  if type(key) not in (list, tuple):
13
13
  key = [key]
14
14
  return key
15
+
16
+ class BindKey(Base):
17
+ def sub(self, key):
18
+ return BindKey(key, False, self, self.obj)
19
+ def init(self, key, abs=True, up=None, conf=None):
20
+ self.key = key
21
+ self.abs = abs
22
+ self.spt = spt
23
+ self.up = up
24
+ self.obj = conf
25
+ def bind(self, conf):
26
+ self.obj=conf
27
+ def get(self, conf=None, default=None):
28
+ conf = self.conf(conf)
29
+ if self.up:
30
+ conf = self.up(conf)
31
+ elif self.abs:
32
+ conf = conf()
33
+ return conf.get(self.key, default)
34
+ def conf(self, obj):
35
+ obj = obj or self.obj
36
+ assert obj is not None
37
+ return obj
38
+ def set(self, val, conf=None):
39
+ conf = self.conf(conf)
40
+ if self.up:
41
+ conf = self.up(conf)
42
+ elif self.abs:
43
+ conf = conf()
44
+ return conf.set(self.key, val)
45
+ def call(self, conf):
46
+ conf = self.conf(conf)
47
+ if self.up:
48
+ conf = self.up(conf)
49
+ elif self.abs:
50
+ conf = conf()
51
+ return conf(self.key)
52
+
53
+ pass
15
54
  class Conf(Base):
55
+ @staticmethod
56
+ def bind_key(key, abs=True, up = None):
57
+ return BindKey(key, abs, up)
16
58
  def val(self):
17
59
  return self.get_conf()
18
60
  def get_type(self):
@@ -292,4 +334,15 @@ class Conf(Base):
292
334
  for key in keys:
293
335
  if self.has(key, link):
294
336
  return True
295
- return False
337
+ return False
338
+
339
+ pass
340
+
341
+ class ArgsConf(Base):
342
+ def init(self, conf, args):
343
+ self.conf =conf
344
+ self.args =args
345
+ def __getattr__(self, key):
346
+ return getattr(self.conf,key)
347
+
348
+ pass
@@ -0,0 +1,89 @@
1
+ class ObjConf:
2
+ def __str__(self):
3
+ return str(self._maps)
4
+ def __repr__(self):
5
+ return self.__str__()
6
+ def __init__(self):
7
+ self._maps = {}
8
+ def __getitem__(self, key):
9
+ return self._maps[key]
10
+ def __getattr__(self, key):
11
+ if key in self._maps:
12
+ return self._maps[key][0]
13
+ return self.__getattribute__(key)
14
+ def __setattr__(self, key, val):
15
+ if key != '_maps':
16
+ self(key, val)
17
+ else:
18
+ object.__setattr__(self,key,val)
19
+ def __call__(self, *args, **maps):
20
+ '''
21
+ call(key,val)
22
+ or
23
+ call(key0=val0, key1=val1)
24
+ '''
25
+ if len(args)==2:
26
+ key,val = args
27
+ self._maps[key] = val
28
+ else:
29
+ for key,val in maps.items():
30
+ self._maps[key] = val
31
+ def __delattr__(self, key):
32
+ if key in self._maps:
33
+ del self._maps[key]
34
+ return super().__delattr__(key)
35
+ def __contains__(self, key):
36
+ return self._maps.__contains__(key)
37
+
38
+ pass
39
+
40
+ class ObjTypeConf(ObjConf):
41
+ def __init__(self, vtype=0):
42
+ super().__init__()
43
+ self._vtypes = {}
44
+ self._vtype = vtype
45
+ def __getitem__(self, vtype=None):
46
+ if vtype is None:
47
+ return self._maps
48
+ maps = {}
49
+ for key in self._maps:
50
+ _vtype = self._vtypes[key]
51
+ if _vtype==vtype:
52
+ maps[key]=self._maps[key]
53
+ return maps
54
+ def __setattr__(self, key, val):
55
+ if key not in {'_maps','_vtype','_vtypes'}:
56
+ self(key, val)
57
+ else:
58
+ object.__setattr__(self,key,val)
59
+ def __call__(self, *args, **maps):
60
+ '''
61
+ call(key,val)
62
+ call(key,val,vtype)
63
+ or
64
+ call(key0=val0, key1=val1)
65
+ '''
66
+ if len(maps)==0:
67
+ if len(args)<=1:
68
+ return self.__getitem__(*args)
69
+ if len(args) in {2,3}:
70
+ key = args[0]
71
+ val = args[1]
72
+ vtype = None
73
+ if len(args)==3:
74
+ vtype = args[2]
75
+ vtype = vtype or self._vtype
76
+ self._maps[key] = val
77
+ self._vtypes[key] = vtype
78
+ else:
79
+ for key,val in maps.items():
80
+ self._maps[key] = val
81
+ self._vtypes[key] = self._vtype
82
+ def __delattr__(self, key):
83
+ if key in self._maps:
84
+ del self._maps[key]
85
+ del self._vtypes[key]
86
+ return
87
+ return super().__delattr__(key)
88
+
89
+ pass
@@ -132,6 +132,7 @@ def fetch(argv = None):
132
132
  v = argv[i]
133
133
  make_plus = 0
134
134
  if v in ["-", "--", "+"]or v[0] not in "+-":
135
+ v = to_val(v)
135
136
  lists.append(v)
136
137
  i+=1
137
138
  continue
@@ -10,6 +10,7 @@ def load_conf(conf, dp=None, dp_key = 'dp', src_key = 'src.conf'):
10
10
  conf_first,replace,flush,visit_list = conf.gets('conf_first,replace,flush,visit_list',1, 1,1,0)
11
11
  spt, spts = conf.gets('spt, spts','.',',')
12
12
  dp = conf.get(dp_key, dp)
13
+ conf.set(dp_key, dp)
13
14
  path = pathz.Path()
14
15
  path.set("dp", dp)
15
16
  rst = Conf(spt, spts)
@@ -51,7 +52,7 @@ def calls(conf):
51
52
  if not local:
52
53
  obj = root
53
54
  for key in calls:
54
- assert obj.has(key), f"not has key: '{key}'"
55
+ #assert obj.has(key), f"not has key: '{key}'"
55
56
  simple(obj.l(key))
56
57
  return conf
57
58
  fn_key = "confz.fns"
@@ -104,7 +105,11 @@ def simple(conf):
104
105
  conf = conf.ltop(conf.domain)
105
106
  deep_link(conf)
106
107
  deep_copy(conf)
107
- fc = get_fc(conf)
108
+ fc = get_fc(conf, default_fn = "calls")
109
+ if fc == calls and not conf.has("calls"):
110
+ fc = None
111
+ if fc is None :
112
+ fc = pyz.load(conf.domain)
108
113
  assert fc is not None, f"conf has not setted deal fc: {conf}"
109
114
  return fc(conf)
110
115
  def get_sys_conf(conf = []):
@@ -13,10 +13,14 @@ def dict2list(data):
13
13
  return rst
14
14
  def deal_item(item, conf):
15
15
  key = item[0]
16
- if key in "sql_before,sql_after,sql_delete_before,sql_delete_after".split(","):
17
- conf[key].append(item[1])
16
+ if len(item)==2:
17
+ obj = item[1]
18
18
  else:
19
- conf[key] = item[1]
19
+ obj = item[1:]
20
+ if key in "sql_before,sql_after,sql_delete_before,sql_delete_after,index.unique".split(","):
21
+ conf[key].append(obj)
22
+ else:
23
+ conf[key] = obj
20
24
  def deal_key(it, conf):
21
25
  data_keys = xf.g(conf, data_keys=[])
22
26
  tmp = {}
@@ -78,7 +82,7 @@ def make(data, table=None, data_keys = "sql_key,sql_def,py_key".split(","), py_n
78
82
  elif type(data) == dict:
79
83
  data = dict2list(data)
80
84
  conf = {}
81
- xf.s(conf, sql_before = [], sql_after = [], sql_delete_before=[], sql_delete_after=[],auto_translate=False,table=table,keys=[],py2sqls={},query_keys=None, data_keys = data_keys, vars=[], py_name = py_name)
85
+ xf.s(conf, sql_before = [], sql_after = [], sql_delete_before=[], sql_delete_after=[],auto_translate=False,table=table,keys=[],py2sqls={},query_keys=None, data_keys = data_keys, vars=[], py_name = py_name, index=[], unique=[])
82
86
  for it in data:
83
87
  if len(it)==1 and type(it[0]) in (list, tuple):
84
88
  deal_item(it[0], conf)
@@ -93,9 +97,22 @@ def make(data, table=None, data_keys = "sql_key,sql_def,py_key".split(","), py_n
93
97
  assert table is not None
94
98
  sql = f"create table if not exists {table}({vars})"
95
99
  sql_del = f"drop table if exists {table}"
100
+ indexes,uniques =xf.g(conf, index=[], unique=[])
101
+ i_u = len(indexes)
102
+ indexes+=uniques
103
+ idx_sqls =[]
104
+ for i in range(len(indexes)):
105
+ keys = indexes[i]
106
+ unique = i>=i_u
107
+ s_u = "unique" if unique else ""
108
+ if type(keys) not in (list,tuple):
109
+ keys = [keys]
110
+ index_name = f"idx_{table}_idx_{'_'.join(keys)}"
111
+ idx_sql = f"create {s_u} index if not exists {index_name} on {table}({','.join(keys)});"
112
+ idx_sqls.append(idx_sql)
96
113
  sqls = xf.g(conf, sql_before=[], sql_after=[], sql_delete_before=[], sql_delete_after=[])
97
114
  #sqls = [";".join(k) for k in sqls]
98
- sqls_crt = sqls[0]+[sql]+sqls[1]
115
+ sqls_crt = sqls[0]+[sql]+idx_sqls+sqls[1]
99
116
  sqls_del = sqls[2]+[sql_del]+sqls[3]
100
117
  sqls = [sqls_crt, sqls_del]
101
118
  sqls = [(";\n".join(k)+";").replace(";;",";") for k in sqls]
@@ -202,6 +219,34 @@ class TableObject(Base):
202
219
  def query_all(self, dv=None, sql2py=False):
203
220
  sql = f"select * from {self.table};"
204
221
  return self.query(sql, dv, sql2py)
222
+ def sql_where(self, maps, py2sql=True):
223
+ rst = []
224
+ for key,val in maps:
225
+ if py2sql:
226
+ key = self.py2sqls[key]
227
+ opt = "="
228
+ if type(val) in (list, tuple):
229
+ opt = val[0]
230
+ val = val[1]
231
+ if type(val)==str:
232
+ val = f"'{val}'"
233
+ if type(val) in (list, tuple):
234
+ val = [k if type(k)!=str else f"'{k}'" for k in val]
235
+ val = f"({','.join(val)})"
236
+ rst.append(f"{key}{opt}{val}")
237
+ return " and ".join(rst)
238
+ def find(self, **maps):
239
+ rst = self.find_all(**maps)
240
+ if len(rst)==0:
241
+ return None
242
+ return rst[0]
243
+ def find_all(self, **maps):
244
+ sql_where = self.sql_where(maps)
245
+ sql = f"find * from {self.table}"
246
+ if sql_where!="":
247
+ sql += f"where {sql_where}"
248
+ sql+=";"
249
+ return self.query(sql)
205
250
  def execute(self, sql, dv=None):
206
251
  dv=self.rdv(dv)
207
252
  return dv.execute(sql)
@@ -0,0 +1,5 @@
1
+
2
+ from ._dz.mapz import *
3
+ from ._dz.omapz import Mapz
4
+ from ._dz.conf import Conf, BindKey
5
+ from ._dz.oconf import ObjConf, ObjTypeConf
@@ -4,5 +4,6 @@ from .dirz import dirs, FileDeal
4
4
  from .lsf import lists, search, searchd,searchs,_search
5
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
+ from .csv import to_csv, from_csv
7
8
 
8
9
  __author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
@@ -0,0 +1,36 @@
1
+ #
2
+ from . import fio
3
+ def to_csv(keys, cols, fp):
4
+ assert len(keys)==len(cols)
5
+ fio.makefdir(fp)
6
+ keys = ", ".join(keys)
7
+ rst = [keys]
8
+ for tmp in zip(*cols):
9
+ tmp = [str(k) for k in tmp]
10
+ tmp = ", ".join(tmp)
11
+ rst.append(tmp)
12
+ rs = "\n".join(rst)
13
+ fio.write(rs.encode("utf-8"), fp)
14
+
15
+ pass
16
+
17
+ def from_csv(fp, col=True, as_map = False):
18
+ # 好像还没测试
19
+ s = fio.read(fp).decode("utf-8")
20
+ arr = s.split("\n")
21
+ arr = [[v.strip() for v in k.split(",")] for k in arr if k.strip()!=""]
22
+ keys = arr[0]
23
+ datas = arr[1:]
24
+ if col:
25
+ datas = []
26
+ for i in range(len(keys)):
27
+ tmp = [k[i] for k in datas]
28
+ datas.append(tmp)
29
+ if as_map:
30
+ datas = {k:arr for k,arr in zip(keys, datas)}
31
+ elif as_map:
32
+ datas = [{k:v for k,v in zip(keys, dt)} for dt in datas]
33
+ return keys, datas
34
+
35
+ pass
36
+
@@ -44,6 +44,7 @@ cache = MiddleCache(models, 3)#, cal_dv = "cpu", cal_nets = cuda_models, cache_n
44
44
  # 训练:
45
45
  def train():
46
46
  cache.train()
47
+ _loss = 0
47
48
  for inputs,targets in dataloader:
48
49
  targets = targets.cuda()
49
50
  #inputs,targets = inputs.cuda(),targets.cuda()
@@ -55,17 +56,19 @@ def train():
55
56
  loss.backward()
56
57
  torch.nn.utils.clip_grad_norm_(real_model.parameters(), max_norm=1.0)
57
58
  opt.step()
59
+ _loss+=loss.cpu().item()
58
60
  #cache.do_backward(lambda: loss.backward())
59
61
  # opt.step()在do_backward里会自动调用
60
62
  # print(loss.item())
61
63
  # break
62
64
  #break
65
+ return _loss / (len(dataloader))
63
66
  pass
64
67
  import time
65
68
  print("start")
66
69
  start = time.time()
67
70
  for i in range(50):
68
- train()
71
+ print(train())
69
72
  sec = time.time()-start
70
73
  print("time cost:", sec)
71
74
 
@@ -11,3 +11,12 @@ from .middle_cache import MiddleCache
11
11
  from .dict_middle import DictCache, Fcs
12
12
  #from .dict_middle import *
13
13
  Dict = DictCache
14
+
15
+ '''
16
+ 20250917
17
+ 写好的是MiddleCache
18
+ 暂时别用DictCache,没测过
19
+
20
+ 20251016
21
+ 测试发现,数据在内存和显存间传输消耗太多,显存不足用此代码未必能提升多少性能,还不如加显存,或者把模型改小,不建议用
22
+ '''
@@ -2,7 +2,18 @@
2
2
  '''
3
3
  model.register_forward_pre_hook 会在模型forward之前调用
4
4
  model.register_forward_hook 会在模型forward之后调用
5
+
6
+ -------------
7
+ 之前写的不准确的:
5
8
  model.register_full_backward_hook 会在模型反向梯度计算之后调用,注,模型列表第一个模型会在计算梯度前调用,该hook参数是(model, grad_ins, grad_outs),model是当前模型,grad_outs是后面的模型传来的,grad_ins是grad_outs经过该model计算后往前传的梯度,好像是第一个模型因为不用往前传梯度,提前调用了
9
+
10
+ 修改后:
11
+ model.register_full_backward_hook 会在模型反向梯度计算之后调用,注,当前模型如果不需要再往前传送梯度,会在反向梯度计算前调用该方法,该hook参数是(model, grad_ins, grad_outs),model是当前模型,grad_outs是后面的模型传来的,grad_ins是grad_outs经过该model计算后往前传的梯度
12
+
13
+ 导致的后果是调用该方法的时候,计算数据还没存到显卡,需要延后调用
14
+ -------------
15
+
16
+
6
17
  torch.autograd.graph.saved_tensors_hooks(hook_pack, hook_unpack):
7
18
  hook_pack会在Tensor计算完成后把之后反向梯度计算要用的tensor进行存储
8
19
  hook_unpack是在Tensor反向梯度计算前取回之前存储的tensor,注:调用loss.backward不用在with ...saved_tensors_hooks(..)中
@@ -37,16 +48,17 @@ class MiddleBase(Base):
37
48
  # 下面是不应修改的部分
38
49
  def hook(self, nets):
39
50
  net = nets[0]
40
- self.start_id = id(net)
41
- self.start_net = net
51
+ # self.start_id = id(net)
52
+ # self.start_net = net
42
53
  hooks = []
43
54
  hooks += [net.register_forward_pre_hook(self.hook_forward_before) for net in nets]
44
55
  hooks+=[net.register_forward_hook(self.native_hook_forward_after) for net in nets]
45
- if hasattr(self.start_net, "register_full_backward_hook"):
56
+ if hasattr(nets[0], "register_full_backward_hook"):
46
57
  hooks+=[net.register_full_backward_hook(self.native_hook_backward_after) for net in nets]
47
58
  else:
48
59
  hooks+=[net.register_backward_hook(self.native_hook_backward_after) for net in nets]
49
60
  self.hooks = hooks
61
+ self.wait_backup_models = []
50
62
  def unhook(self):
51
63
  [hook.remove() for hook in self.hooks]
52
64
  def do_forward(self, fc):
@@ -55,11 +67,17 @@ class MiddleBase(Base):
55
67
  def do_backward(self, fc):
56
68
  with self.wrap_backward():
57
69
  return fc()
70
+ def backupable(self, model):
71
+ return True
58
72
  def wrap_backward(self):
59
73
  def wrap_enter():
74
+ self.wait_backup_models = []
60
75
  self.before_backward()
61
76
  def wrap_out(exc_type, exc_val, exc_tb):
62
- self.hook_backward_after(self.start_net)
77
+ #self.hook_backward_after(self.start_net)
78
+ #print(f"BACK OUT MODELS:", self.wait_backup_models)
79
+ for model in self.wait_backup_models:
80
+ self.hook_backward_after(model)
63
81
  self.after_backward()
64
82
  return pyz.With(wrap_enter, wrap_out, True)
65
83
  def wrap_forward(self):
@@ -72,7 +90,10 @@ class MiddleBase(Base):
72
90
  self.after_forward()
73
91
  return pyz.With(wrap_enter, wrap_out, True)
74
92
  def native_hook_backward_after(self, model, grad_up, grad_src):
75
- if id(model)==self.start_id:
93
+ # if id(model)==self.start_id:
94
+ # return
95
+ if not self.backupable(model):
96
+ self.wait_backup_models.append(model)
76
97
  return
77
98
  self.hook_backward_after(model)
78
99
  def native_hook_forward_after(self, model, ins, outs):
@@ -2,6 +2,9 @@
2
2
 
3
3
  from .middle_base import MiddleBase
4
4
  import torch
5
+ from buildz import logz
6
+ log = logz.simple("middle_cache.log")("GPUZ_CACHE")
7
+ log.show("debug", 0)
5
8
  class MiddleCache(MiddleBase):
6
9
  '''
7
10
  nets: 模型列表
@@ -43,6 +46,7 @@ class MiddleCache(MiddleBase):
43
46
  self.nexts = {}
44
47
  self.prevs = {}
45
48
  self.curr = -1
49
+ #self.caches = set()
46
50
  self.mark_static = None
47
51
  self.win_size = win_size
48
52
  self.preload = preload
@@ -57,28 +61,56 @@ class MiddleCache(MiddleBase):
57
61
  # assert datas is not None, "inputs datas is null"
58
62
  inputs = tuple([k.to(dv) for k in datas])
59
63
  return inputs
64
+ @staticmethod
65
+ def deep_inputs_to(datas, dv):
66
+ '''
67
+ 数据比较复杂用这个,会递归搜索list,tuple和dict病做转换
68
+ '''
69
+ log.debug(f"deep_inputs_to")
70
+ if isinstance(datas, torch.Tensor):
71
+ return datas.to(dv)
72
+ if type(datas) in (list, tuple):
73
+ rst = [MiddleCache.deep_inputs_to(k, dv) for k in datas]
74
+ if type(datas)==tuple:
75
+ rst = tuple(rst)
76
+ return rst
77
+ if type(datas) == dict:
78
+ rst = {k:MiddleCache.deep_inputs_to(v, dv) for k,v in datas.items()}
79
+ return rst
80
+ assert 0, f"undealable datas type: {type(datas)}"
60
81
  def before_forward(self):
82
+ log.debug(f"before_forward")
61
83
  self.curr = -1
84
+ #self.caches = set()
62
85
  for mid in self.datas:
63
86
  self.datas[mid] = []
64
87
  def after_forward(self):
65
88
  pass
66
89
  def before_backward(self):
90
+ log.debug(f"before_backward")
67
91
  self.curr = -1
92
+ def backupable(self, model):
93
+ mid = id(model)
94
+ return mid in self.cal_ids or mid in self.static_dv
95
+ #return mid not in self.caches
68
96
  def after_backward(self):
69
97
  pass
70
98
  def to_dv(self, mid, dv):
71
99
  self.nets[mid].to(dv)
72
100
  self.datas[mid] = [self.inputs_to(k, dv) if k is not None else k for k in self.datas[mid]]
73
101
  def to_cal(self, mid, pop = 0):
102
+ log.debug(f"to_cal")
74
103
  if mid in self.cal_ids:
75
104
  return 0
76
105
  if len(self.cal_ids)>=self.win_size:
77
106
  xid = self.cal_ids.pop(pop)
78
107
  #print(f"model_{self.indexes[xid]} to CPU device")
79
108
  self.to_dv(xid, self.cache_dv)
109
+ #self.caches.add(xid)
80
110
  #print(f"model_{self.indexes[mid]} to CUDA device")
81
111
  self.to_dv(mid, self.cal_dv)
112
+ # if mid in self.caches:
113
+ # self.caches.remove(mid)
82
114
  if pop==-1:
83
115
  self.cal_ids = [mid]+self.cal_ids
84
116
  else:
@@ -86,6 +118,7 @@ class MiddleCache(MiddleBase):
86
118
  return 1
87
119
  def hook_forward_before(self, model, ins):
88
120
  mid = id(model)
121
+ log.debug(f"hook_forward_before", model, id(model))
89
122
  self.mark_static = mid in self.static_dv
90
123
  if self.mark_static:
91
124
  # assert ins is not None, "hook_forward_before A"
@@ -100,8 +133,12 @@ class MiddleCache(MiddleBase):
100
133
  # assert ins is not None, "hook_forward_before B"
101
134
  return self.inputs_to(ins, self.cal_dv)
102
135
  def hook_forward_after(self, model):
136
+ log.debug(f"hook_forward_after", model, id(model))
103
137
  pass
104
138
  def hook_backward_after(self, model):
139
+ log.debug(f"hook_backward_after", model, id(model))
140
+ #print(f"hook_backward_after", model, id(model))
141
+ assert self.backupable(model)
105
142
  mid = id(model)
106
143
  if self.deal_after_backup is not None:
107
144
  self.deal_after_backup(model)
@@ -112,12 +149,15 @@ class MiddleCache(MiddleBase):
112
149
  self.prevs[after] = mid
113
150
  self.curr = mid
114
151
  def tensor_save(self, tuple_data):
152
+ log.debug(f"tensor_save")
115
153
  if self.mark_static:
116
154
  return -1, tuple_data
117
155
  index = len(self.datas[self.curr])
118
156
  self.datas[self.curr].append(tuple_data)
157
+ log.debug(f"done tensor_save", self.curr, index)
119
158
  return self.curr, index
120
159
  def tensor_load(self, obj):
160
+ log.debug(f"tensor_load", obj)
121
161
  if obj[0]<0:
122
162
  return obj[1]
123
163
  curr, index = obj
@@ -127,6 +167,7 @@ class MiddleCache(MiddleBase):
127
167
  self.datas[curr][index] = None
128
168
  return tuple_data
129
169
  def loop_to_cal(self, mid, pop, nexts):
170
+ log.debug(f"loop_to_cal")
130
171
  if mid in self.cal_ids:
131
172
  return
132
173
  self.to_cal(mid, pop)
@@ -10,16 +10,18 @@ ns = wrap.ns("buildz.logz")
10
10
  @ns.obj(id="baseLog")
11
11
  @ns.obj_args("ref, buildz.logz.shows, null", "ref, buildz.logz.tag, null", "ref, buildz.logz.base, null")
12
12
  class Log(Base):
13
- def show(self, type):
13
+ def show(self, type, on=True):
14
+ if not on:
15
+ return self.unshow(type)
14
16
  if type not in self.shows:
15
- self.show.append(type)
17
+ self.shows.append(type)
16
18
  def unshow(self, type):
17
19
  if type in self.shows:
18
20
  self.shows.remove(type)
19
21
  def call(self, _tag):
20
22
  return self.tag(_tag)
21
23
  def tag(self, _tag):
22
- if type(_tag) != str:
24
+ if _tag is not None and type(_tag) != str:
23
25
  try:
24
26
  if not hasattr(_tag, "__name__"):
25
27
  _tag = _tag.__class__
@@ -56,22 +58,28 @@ class Log(Base):
56
58
  if self.base is not None:
57
59
  return self.base.log(level, tag, *args)
58
60
  raise Exception("unimpl")
59
- def info(self, *args):
60
- if "info" not in self.shows:
61
- return
62
- self.log("info", self._tag, *args)
63
- def warn(self, *args):
64
- if "warn" not in self.shows:
65
- return
66
- self.log("warn", self._tag, *args)
67
- def debug(self, *args):
68
- if "debug" not in self.shows:
69
- return
70
- self.log("debug", self._tag, *args)
71
- def error(self, *args):
72
- if "error" not in self.shows:
73
- return
74
- self.log("error", self._tag, *args)
61
+ def __getattr__(self, key):
62
+ def fc(*args):
63
+ if key not in self.shows:
64
+ return
65
+ self.log(key, self._tag, *args)
66
+ return fc
67
+ # def info(self, *args):
68
+ # if "info" not in self.shows:
69
+ # return
70
+ # self.log("info", self._tag, *args)
71
+ # def warn(self, *args):
72
+ # if "warn" not in self.shows:
73
+ # return
74
+ # self.log("warn", self._tag, *args)
75
+ # def debug(self, *args):
76
+ # if "debug" not in self.shows:
77
+ # return
78
+ # self.log("debug", self._tag, *args)
79
+ # def error(self, *args):
80
+ # if "error" not in self.shows:
81
+ # return
82
+ # self.log("error", self._tag, *args)
75
83
  def clean(self):
76
84
  pass
77
85