buildz 0.9.4__tar.gz → 0.9.6__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 (461) hide show
  1. {buildz-0.9.4/buildz.egg-info → buildz-0.9.6}/PKG-INFO +1 -1
  2. {buildz-0.9.4 → buildz-0.9.6}/buildz/_dz/conf.py +2 -2
  3. {buildz-0.9.4 → buildz-0.9.6}/buildz/confz.py +2 -0
  4. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/demo.py +12 -3
  5. buildz-0.9.6/buildz/gpuz/test/dm.py +89 -0
  6. buildz-0.9.6/buildz/gpuz/test/dm1.py +124 -0
  7. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/torch/__init__.py +3 -0
  8. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/torch/dict_middle.py +6 -0
  9. buildz-0.9.6/buildz/gpuz/torch/middle_base.py +80 -0
  10. buildz-0.9.6/buildz/gpuz/torch/middle_cache.py +143 -0
  11. buildz-0.9.6/buildz/path.py +79 -0
  12. {buildz-0.9.4 → buildz-0.9.6/buildz.egg-info}/PKG-INFO +1 -1
  13. {buildz-0.9.4 → buildz-0.9.6}/buildz.egg-info/SOURCES.txt +5 -0
  14. {buildz-0.9.4 → buildz-0.9.6}/setup.py +1 -1
  15. {buildz-0.9.4 → buildz-0.9.6}/LICENSE +0 -0
  16. {buildz-0.9.4 → buildz-0.9.6}/MANIFEST.in +0 -0
  17. {buildz-0.9.4 → buildz-0.9.6}/README.md +0 -0
  18. {buildz-0.9.4 → buildz-0.9.6}/buildz/__init__.py +0 -0
  19. {buildz-0.9.4 → buildz-0.9.6}/buildz/__main__.py +0 -0
  20. {buildz-0.9.4 → buildz-0.9.6}/buildz/_dz/mapz.py +0 -0
  21. {buildz-0.9.4 → buildz-0.9.6}/buildz/_dz/omapz.py +0 -0
  22. {buildz-0.9.4 → buildz-0.9.6}/buildz/argx.py +0 -0
  23. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/__init__.py +0 -0
  24. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/argz.py +0 -0
  25. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/callz.py +0 -0
  26. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/conf_argz.py +0 -0
  27. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/conf_callz.py +0 -0
  28. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/evalx.py +0 -0
  29. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/init.py +0 -0
  30. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/test.py +0 -0
  31. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz/test_call.py +0 -0
  32. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/__init__.py +0 -0
  33. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/argz.py +0 -0
  34. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/build.py +0 -0
  35. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/callz.py +0 -0
  36. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/evalx.py +0 -0
  37. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/test.py +0 -0
  38. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/test_obj.py +0 -0
  39. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/tests/conf.js +0 -0
  40. {buildz-0.9.4 → buildz-0.9.6}/buildz/argz_bk/testx.py +0 -0
  41. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/__init__.py +0 -0
  42. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/cache.py +0 -0
  43. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/config.py +0 -0
  44. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/dbs.py +0 -0
  45. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/deal.py +0 -0
  46. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/deal_list.py +0 -0
  47. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/deal_type.py +0 -0
  48. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/defs.py +0 -0
  49. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/factory.py +0 -0
  50. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/init.py +0 -0
  51. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/log.py +0 -0
  52. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/request.py +0 -0
  53. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/run.py +0 -0
  54. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/save.py +0 -0
  55. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/cache/cache.js +0 -0
  56. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/config/base.js +0 -0
  57. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/config/config.js +0 -0
  58. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/data/fp.js +0 -0
  59. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/data/item1.js +0 -0
  60. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/data/item2.js +0 -0
  61. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/res/data/test.js +0 -0
  62. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/test.py +0 -0
  63. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/test/xtest.py +0 -0
  64. {buildz-0.9.4 → buildz-0.9.6}/buildz/auto/verify.py +0 -0
  65. {buildz-0.9.4 → buildz-0.9.6}/buildz/base.py +0 -0
  66. {buildz-0.9.4 → buildz-0.9.6}/buildz/cachez/__init__.py +0 -0
  67. {buildz-0.9.4 → buildz-0.9.6}/buildz/cachez/cache.py +0 -0
  68. {buildz-0.9.4 → buildz-0.9.6}/buildz/cmd.py +0 -0
  69. {buildz-0.9.4 → buildz-0.9.6}/buildz/confz_test/argx.js +0 -0
  70. {buildz-0.9.4 → buildz-0.9.6}/buildz/confz_test/conf.js +0 -0
  71. {buildz-0.9.4 → buildz-0.9.6}/buildz/confz_test/test.js +0 -0
  72. {buildz-0.9.4 → buildz-0.9.6}/buildz/confz_test/test.py +0 -0
  73. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/__init__.py +0 -0
  74. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/__main__.py +0 -0
  75. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/__init__.py +0 -0
  76. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/basez.py +0 -0
  77. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/clickhousez.py +0 -0
  78. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/lib/readme +0 -0
  79. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/mysqlz.py +0 -0
  80. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/oraclez.py +0 -0
  81. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/orm.py +0 -0
  82. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/postgresqlz.py +0 -0
  83. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/sqlite3z.py +0 -0
  84. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/dv/structz.py +0 -0
  85. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/install.txt +0 -0
  86. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/run.conf +0 -0
  87. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/runz.py +0 -0
  88. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/sc.py +0 -0
  89. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/subrun.py +0 -0
  90. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/subsc.py +0 -0
  91. {buildz-0.9.4 → buildz-0.9.6}/buildz/db/tls.py +0 -0
  92. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/ioc/deal.py +0 -0
  93. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/ioc/help.py +0 -0
  94. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/myers/deal.py +0 -0
  95. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/myers/help.py +0 -0
  96. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/conf/ioc.js +0 -0
  97. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/conf/main.js +0 -0
  98. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/conf/myers.js +0 -0
  99. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/conf/search.js +0 -0
  100. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/conf/xf.js +0 -0
  101. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/help/default.js +0 -0
  102. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/help/ioc.js +0 -0
  103. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/help/myers.js +0 -0
  104. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/help/search.js +0 -0
  105. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/help/xf.js +0 -0
  106. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/res/test.js +0 -0
  107. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/search/deal.py +0 -0
  108. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/search/help.py +0 -0
  109. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/test.py +0 -0
  110. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/xf/deal.py +0 -0
  111. {buildz-0.9.4 → buildz-0.9.6}/buildz/demo/xf/help.py +0 -0
  112. {buildz-0.9.4 → buildz-0.9.6}/buildz/dz.py +0 -0
  113. {buildz-0.9.4 → buildz-0.9.6}/buildz/evalz/__init__.py +0 -0
  114. {buildz-0.9.4 → buildz-0.9.6}/buildz/evalz/evalz.py +0 -0
  115. {buildz-0.9.4 → buildz-0.9.6}/buildz/evalz/res/default.js +0 -0
  116. {buildz-0.9.4 → buildz-0.9.6}/buildz/evalz/test.py +0 -0
  117. {buildz-0.9.4 → buildz-0.9.6}/buildz/fz/__init__.py +0 -0
  118. {buildz-0.9.4 → buildz-0.9.6}/buildz/fz/dirz.py +0 -0
  119. {buildz-0.9.4 → buildz-0.9.6}/buildz/fz/fhs.py +0 -0
  120. {buildz-0.9.4 → buildz-0.9.6}/buildz/fz/fio.py +0 -0
  121. {buildz-0.9.4 → buildz-0.9.6}/buildz/fz/lsf.py +0 -0
  122. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/analyze.py +0 -0
  123. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/report.txt +0 -0
  124. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/take_gpu_mem.py +0 -0
  125. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/test_atten_demo.py +0 -0
  126. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/test_linear_demo.py +0 -0
  127. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/test_multi_demo.py +0 -0
  128. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/test/test_resnet_demo.py +0 -0
  129. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/torch/multi_dict_middle.py +0 -0
  130. {buildz-0.9.4 → buildz-0.9.6}/buildz/gpuz/torch/seq_middle.py +0 -0
  131. {buildz-0.9.4 → buildz-0.9.6}/buildz/html/__init__.py +0 -0
  132. {buildz-0.9.4 → buildz-0.9.6}/buildz/html/test/demo.html +0 -0
  133. {buildz-0.9.4 → buildz-0.9.6}/buildz/html/test/test.py +0 -0
  134. {buildz-0.9.4 → buildz-0.9.6}/buildz/html/xml.py +0 -0
  135. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/__init__.py +0 -0
  136. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/base.py +0 -0
  137. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/init.py +0 -0
  138. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc/base.py +0 -0
  139. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc/conf.py +0 -0
  140. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc/confs.py +0 -0
  141. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc/decorator.py +0 -0
  142. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc/loads.py +0 -0
  143. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc/single.py +0 -0
  144. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/base.py +0 -0
  145. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/branch.py +0 -0
  146. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/call.py +0 -0
  147. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/calls.py +0 -0
  148. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
  149. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  150. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  151. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  152. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  153. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  154. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  155. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  156. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  157. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  158. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  159. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  160. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  161. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  162. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  163. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  164. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  165. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  166. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  167. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  168. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  169. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
  170. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  171. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  172. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  173. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/deal.py +0 -0
  174. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/demo.py +0 -0
  175. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/env.py +0 -0
  176. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/init.py +0 -0
  177. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/ioc.py +0 -0
  178. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/iocf.py +0 -0
  179. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/join.py +0 -0
  180. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/list.py +0 -0
  181. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/map.py +0 -0
  182. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/mcall.py +0 -0
  183. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/obj.py +0 -0
  184. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/ovar.py +0 -0
  185. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/ref.py +0 -0
  186. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/refs.py +0 -0
  187. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/val.py +0 -0
  188. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/var.py +0 -0
  189. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/ioc_deal/xfile.py +0 -0
  190. {buildz-0.9.4 → buildz-0.9.6}/buildz/ioc/wrap.py +0 -0
  191. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/__init__.py +0 -0
  192. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/base.py +0 -0
  193. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf/base.py +0 -0
  194. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf/conf.py +0 -0
  195. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf/mg.py +0 -0
  196. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf/unit.py +0 -0
  197. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf/up.py +0 -0
  198. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/attr.py +0 -0
  199. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/base.py +0 -0
  200. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/call.py +0 -0
  201. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/cvar.py +0 -0
  202. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/deal.py +0 -0
  203. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/env.py +0 -0
  204. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/ioc.py +0 -0
  205. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/method.py +0 -0
  206. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/obj.py +0 -0
  207. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/ref.py +0 -0
  208. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/conf_deal/val.py +0 -0
  209. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/init.py +0 -0
  210. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/__init__.py +0 -0
  211. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/base.py +0 -0
  212. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/builds.py +0 -0
  213. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/confs.py +0 -0
  214. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/datas.py +0 -0
  215. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/dataset.py +0 -0
  216. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/encapes.py +0 -0
  217. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/envs.py +0 -0
  218. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/ids.py +0 -0
  219. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/init.py +0 -0
  220. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/mg.py +0 -0
  221. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/single.py +0 -0
  222. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/sys_envs.py +0 -0
  223. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/tdata.py +0 -0
  224. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/tdict.py +0 -0
  225. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/unit.py +0 -0
  226. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc/vars.py +0 -0
  227. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc_deal/base.py +0 -0
  228. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc_deal/deal.py +0 -0
  229. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc_deal/ioc.py +0 -0
  230. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc_deal/obj.py +0 -0
  231. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc_deal/ref.py +0 -0
  232. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/ioc_deal/val.py +0 -0
  233. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/test/test.py +0 -0
  234. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/wrap/base.py +0 -0
  235. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/wrap/default_wraps.py +0 -0
  236. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/wrap/env.py +0 -0
  237. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/wrap/obj.py +0 -0
  238. {buildz-0.9.4 → buildz-0.9.6}/buildz/iocz/wrap/wraps.py +0 -0
  239. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/Test.javap +0 -0
  240. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/build +0 -0
  241. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/build.bat +0 -0
  242. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/clean +0 -0
  243. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/clean.bat +0 -0
  244. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/com/buildz/Conf.javap +0 -0
  245. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/com/buildz/ConfUtil.javap +0 -0
  246. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/com/buildz/Confz.javap +0 -0
  247. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/com/buildz/Utils.javap +0 -0
  248. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/fps.js +0 -0
  249. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/jv +0 -0
  250. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/jv.bat +0 -0
  251. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/jvc +0 -0
  252. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/jvc.bat +0 -0
  253. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/run +0 -0
  254. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/run.bat +0 -0
  255. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/confz/test.js +0 -0
  256. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/defs.py +0 -0
  257. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/dm.py +0 -0
  258. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/fcs.py +0 -0
  259. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/jsc.py +0 -0
  260. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/main.py +0 -0
  261. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/rn.py +0 -0
  262. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/jvp/util.py +0 -0
  263. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/note +0 -0
  264. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/Test.java +0 -0
  265. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/all.sh +0 -0
  266. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/com/buildz/xf/Args.java +0 -0
  267. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/com/buildz/xf/Loader.java +0 -0
  268. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/com/buildz/xf/LoaderJNI.java +0 -0
  269. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/com/buildz/xf/cpp/com_buildz_xf_LoaderJNI.h +0 -0
  270. {buildz-0.9.4 → buildz-0.9.6}/buildz/jv/xf/com/buildz/xf/cpp/jxf.cpp +0 -0
  271. {buildz-0.9.4 → buildz-0.9.6}/buildz/logz.py +0 -0
  272. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/__init__.py +0 -0
  273. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/__init__.py +0 -0
  274. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/caps.py +0 -0
  275. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/gateway.py +0 -0
  276. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/mhttp.py +0 -0
  277. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/mhttps.py +0 -0
  278. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/proxy.py +0 -0
  279. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/mhttp/record.py +0 -0
  280. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/sslz/__init__.py +0 -0
  281. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/sslz/gen.py +0 -0
  282. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/sslz/gen.pyi +0 -0
  283. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/tcp/__init__.py +0 -0
  284. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/tcp/__main__.py +0 -0
  285. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/tcp/middle.py +0 -0
  286. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/test/__main__.py +0 -0
  287. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/test/test.py +0 -0
  288. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/test/test_cli.py +0 -0
  289. {buildz-0.9.4 → buildz-0.9.6}/buildz/netz/test/test_gw.py +0 -0
  290. {buildz-0.9.4 → buildz-0.9.6}/buildz/pathz.py +0 -0
  291. {buildz-0.9.4 → buildz-0.9.6}/buildz/pyz.py +0 -0
  292. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/__main__.py +0 -0
  293. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/lst.py +0 -0
  294. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/oldversion/run.py +0 -0
  295. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/oldversion/thrun.py +0 -0
  296. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/subchild.py +0 -0
  297. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/subrun.py +0 -0
  298. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/test/inc.py +0 -0
  299. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/test/x.js +0 -0
  300. {buildz-0.9.4 → buildz-0.9.6}/buildz/sc/test/x.py +0 -0
  301. {buildz-0.9.4 → buildz-0.9.6}/buildz/threads/__init__.py +0 -0
  302. {buildz-0.9.4 → buildz-0.9.6}/buildz/threads/impl.py +0 -0
  303. {buildz-0.9.4 → buildz-0.9.6}/buildz/threads/pool.py +0 -0
  304. {buildz-0.9.4 → buildz-0.9.6}/buildz/threads/test.py +0 -0
  305. {buildz-0.9.4 → buildz-0.9.6}/buildz/tls.py +0 -0
  306. {buildz-0.9.4 → buildz-0.9.6}/buildz/tools.py +0 -0
  307. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/__init__.py +0 -0
  308. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/code.py +0 -0
  309. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/filediff.py +0 -0
  310. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/myers_diff.py +0 -0
  311. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/test_xfind.py +0 -0
  312. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/time/__init__.py +0 -0
  313. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/time/timez.py +0 -0
  314. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/tio/__init__.py +0 -0
  315. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/tio/base.py +0 -0
  316. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/tio/getch.py +0 -0
  317. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/tio/lx.py +0 -0
  318. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/tio/test.py +0 -0
  319. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/tio/win.py +0 -0
  320. {buildz-0.9.4 → buildz-0.9.6}/buildz/tz/xfind.py +0 -0
  321. {buildz-0.9.4 → buildz-0.9.6}/buildz/unittest/__init__.py +0 -0
  322. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/__init__.py +0 -0
  323. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/__main__.py +0 -0
  324. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/base.py +0 -0
  325. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/code.py +0 -0
  326. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/Makefile +0 -0
  327. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/README.txt +0 -0
  328. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/clean.py +0 -0
  329. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/base.h +0 -0
  330. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/base_deal.h +0 -0
  331. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/buffer.cpp +0 -0
  332. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/buffer.h +0 -0
  333. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/callback.h +0 -0
  334. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/callback_demo.cpp +0 -0
  335. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/callback_demo.h +0 -0
  336. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/code.cpp +0 -0
  337. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/code.h +0 -0
  338. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/cxf.h +0 -0
  339. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/dict.cpp +0 -0
  340. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/dict.h +0 -0
  341. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/kv.h +0 -0
  342. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/list.cpp +0 -0
  343. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/list.h +0 -0
  344. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/listdict.cpp +0 -0
  345. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/listdict.h +0 -0
  346. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/lr.cpp +0 -0
  347. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/lr.h +0 -0
  348. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/lrval.cpp +0 -0
  349. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/lrval.h +0 -0
  350. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/next.cpp +0 -0
  351. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/next.h +0 -0
  352. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/reval.h +0 -0
  353. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/spt.cpp +0 -0
  354. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/spt.h +0 -0
  355. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/str.cpp +0 -0
  356. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/deal/str.h +0 -0
  357. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/exp.h +0 -0
  358. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/init.cpp +0 -0
  359. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/init.h +0 -0
  360. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/item.h +0 -0
  361. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/mg.cpp +0 -0
  362. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/mg.h +0 -0
  363. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/loaderz/test.cpp +0 -0
  364. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/pc.cpp +0 -0
  365. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/pc.h +0 -0
  366. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/pcxf.pyx +0 -0
  367. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/setup.py +0 -0
  368. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/setup_mingw32.py +0 -0
  369. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/cpp/tstcxf.py +0 -0
  370. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/file.py +0 -0
  371. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/base.py +0 -0
  372. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/buffer.py +0 -0
  373. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/listz.py +0 -0
  374. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/lr.py +0 -0
  375. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/lrval.py +0 -0
  376. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/mapz.py +0 -0
  377. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/nextz.py +0 -0
  378. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/reval.py +0 -0
  379. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/setz.py +0 -0
  380. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/spc.py +0 -0
  381. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/spt.py +0 -0
  382. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/deal/strz.py +0 -0
  383. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/exp.py +0 -0
  384. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/item.py +0 -0
  385. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/mg.py +0 -0
  386. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loader/pos.py +0 -0
  387. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/base.py +0 -0
  388. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/buffer.py +0 -0
  389. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/listmapz.py +0 -0
  390. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/listz.py +0 -0
  391. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/lr.py +0 -0
  392. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/lrval.py +0 -0
  393. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/mapz.py +0 -0
  394. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/nextz.py +0 -0
  395. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/reval.py +0 -0
  396. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/setz.py +0 -0
  397. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/spt.py +0 -0
  398. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/deal/strz.py +0 -0
  399. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/exp.py +0 -0
  400. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/item.py +0 -0
  401. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/mg.py +0 -0
  402. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/pos.py +0 -0
  403. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/test.py +0 -0
  404. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz/test1.py +0 -0
  405. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/base.py +0 -0
  406. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/buffer.py +0 -0
  407. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
  408. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
  409. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
  410. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
  411. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
  412. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
  413. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
  414. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
  415. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
  416. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
  417. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/exp.py +0 -0
  418. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/item.py +0 -0
  419. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/mg.py +0 -0
  420. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/pos.py +0 -0
  421. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/test.py +0 -0
  422. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/loaderz_nexp/test1.py +0 -0
  423. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/mapz.py +0 -0
  424. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/read.py +0 -0
  425. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/readz.py +0 -0
  426. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/readz_nexp.py +0 -0
  427. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/stack.py +0 -0
  428. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/write.py +0 -0
  429. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/base.py +0 -0
  430. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/conf.py +0 -0
  431. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/deal/jsonval.py +0 -0
  432. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/deal/listmapz.py +0 -0
  433. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/deal/listz.py +0 -0
  434. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/deal/mapz.py +0 -0
  435. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/deal/reval.py +0 -0
  436. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/deal/strz.py +0 -0
  437. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/itemz.py +0 -0
  438. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writer/mg.py +0 -0
  439. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/base.py +0 -0
  440. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/conf.py +0 -0
  441. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/deal/jsonval.py +0 -0
  442. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/deal/listmapz.py +0 -0
  443. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/deal/listz.py +0 -0
  444. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/deal/mapz.py +0 -0
  445. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/deal/reval.py +0 -0
  446. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/deal/strz.py +0 -0
  447. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/itemz.py +0 -0
  448. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/mg.py +0 -0
  449. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/test.py +0 -0
  450. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writerz/testx.py +0 -0
  451. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/writez.py +0 -0
  452. {buildz-0.9.4 → buildz-0.9.6}/buildz/xf/xargs.py +0 -0
  453. {buildz-0.9.4 → buildz-0.9.6}/buildz/xz/__init__.py +0 -0
  454. {buildz-0.9.4 → buildz-0.9.6}/buildz/xz/conf.js +0 -0
  455. {buildz-0.9.4 → buildz-0.9.6}/buildz/xz/data.js +0 -0
  456. {buildz-0.9.4 → buildz-0.9.6}/buildz/xz/test.py +0 -0
  457. {buildz-0.9.4 → buildz-0.9.6}/buildz/xz/trs.py +0 -0
  458. {buildz-0.9.4 → buildz-0.9.6}/buildz.egg-info/dependency_links.txt +0 -0
  459. {buildz-0.9.4 → buildz-0.9.6}/buildz.egg-info/top_level.txt +0 -0
  460. {buildz-0.9.4 → buildz-0.9.6}/notes/notes.txt +0 -0
  461. {buildz-0.9.4 → buildz-0.9.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.9.4
3
+ Version: 0.9.6
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
@@ -257,7 +257,7 @@ class Conf(Base):
257
257
  # TODO
258
258
  keys = dzkeys(key, self.spt)
259
259
  return mapz.dremove(self.conf, keys)
260
- def _has(self, key, link=0):
260
+ def _has(self, key, link=-1):
261
261
  return self._hget(key, None, link)[1]
262
262
  keys = dzkeys(key, self.spt)
263
263
  return mapz.dhas(self.conf, keys)
@@ -272,7 +272,7 @@ class Conf(Base):
272
272
  return rst
273
273
  def s(self, **maps):
274
274
  [self.set(k,v) for k,v in maps.items()]
275
- def has_all(self, keys, link = 0):
275
+ def has_all(self, keys, link = -1):
276
276
  keys = self.spts_ks(keys)
277
277
  rst = [1-self.has(key, link) for key in keys]
278
278
  return sum(rst)==0
@@ -19,6 +19,8 @@ def load_conf(conf, dp=None, dp_key = 'dp', src_key = 'src.conf'):
19
19
  rst.update(base, flush, replace, visit_list)
20
20
  for fp in fps:
21
21
  tmp = xf.loadf(path.dp(fp))
22
+ if type(tmp)!=dict:
23
+ continue
22
24
  rst.update(tmp, flush, replace, visit_list)
23
25
  if not conf_first:
24
26
  rst.update(base, flush, replace, visit_list)
@@ -13,7 +13,13 @@ class TestDataset(Dataset):
13
13
  return self.num
14
14
  def __getitem__(self, i):
15
15
  return self.datas[i], self.targets[i]
16
- dims = 12
16
+ dims = 3
17
+ """
18
+ cd D:\rootz\python\gits\buildz_upd\buildz\gpuz\test
19
+ D:
20
+ python -m buildz.gpuz.test.demo > demo.txt
21
+
22
+ """
17
23
  dataset = TestDataset(30, dims)
18
24
  dataloader = DataLoader(dataset, 10)
19
25
  class MiniModel(nn.Module):
@@ -25,7 +31,7 @@ class MiniModel(nn.Module):
25
31
  self.nets = nn.Sequential(*nets)
26
32
  def forward(self, inputs):
27
33
  return self.nets(inputs)
28
- models = [MiniModel(dims, 32, 3) for i in range(10)]
34
+ models = [MiniModel(dims, 6, 3) for i in range(6)]
29
35
  opts = [optim.Adam(model.parameters(), lr=0.001) for model in models]
30
36
  #可以指定哪些模型全部放cuda或者全部放cpu
31
37
  cuda_models = [models[1],models[2]]
@@ -38,7 +44,7 @@ def opt_step(net, opt):
38
44
  # 另外,opt不一定就是优化函数,可以是任何数据,其只取决于创建DictCache的时候传入的opts是什么
39
45
  torch.nn.utils.clip_grad_norm_(net.parameters(), max_norm=1.0)
40
46
  opt.step()
41
- cache = DictCache([torch.device('cuda'), torch.device('cpu')],models,opts,3,opt_step, [cuda_models,cpu_models])
47
+ cache = DictCache([torch.device('cuda'), torch.device('cpu')],models,opts,3,opt_step)#, [cuda_models,cpu_models])
42
48
 
43
49
  # 训练:
44
50
  [md.train() for md in models]
@@ -50,6 +56,9 @@ for inputs,targets in dataloader:
50
56
  cache.do_backward(lambda: loss.backward())
51
57
  # opt.step()在do_backward里会自动调用
52
58
  print(loss.item())
59
+ break
60
+
61
+ exit()
53
62
 
54
63
  # 测试:
55
64
  inputs = torch.rand(1, dims).cuda()
@@ -0,0 +1,89 @@
1
+
2
+ from buildz.gpuz.torch import DictCache
3
+ import torch
4
+ from torch import nn,optim
5
+ from torch.utils.data import DataLoader, Dataset
6
+ class TestDataset(Dataset):
7
+ def __init__(self, num, dims):
8
+ self.num = num
9
+ self.dims = dims
10
+ self.datas = torch.rand(num, dims)
11
+ self.targets = torch.rand(num, dims)
12
+ def __len__(self):
13
+ return self.num
14
+ def __getitem__(self, i):
15
+ return self.datas[i], self.targets[i]
16
+ dims = 64
17
+ """
18
+ cd D:\rootz\python\gits\buildz_upd\buildz\gpuz\test
19
+ D:
20
+ python -m buildz.gpuz.test.demo > demo.txt
21
+
22
+ """
23
+ dataset = TestDataset(90, dims)
24
+ dataloader = DataLoader(dataset, 30)
25
+ class MiniModel(nn.Module):
26
+ def __init__(self, dims, mdims, num):
27
+ super().__init__()
28
+ nets = [nn.Linear(dims, mdims)]
29
+ nets += [nn.Linear(mdims,mdims) for i in range(num)]
30
+ nets.append(nn.Linear(mdims,dims))
31
+ self.nets = nn.Sequential(*nets)
32
+ def forward(self, inputs):
33
+ return self.nets(inputs)
34
+ models = [MiniModel(dims, 32, 3) for i in range(6)]
35
+ opts = [optim.Adam(model.parameters(), lr=0.001) for model in models]
36
+ #可以指定哪些模型全部放cuda或者全部放cpu
37
+ cuda_models = [models[1],models[2]]
38
+ cpu_models = [models[-1]]
39
+ real_model = nn.Sequential(*models)
40
+ loss_fn = torch.nn.MSELoss()
41
+ def opt_step(net, opt):
42
+ # 如果模型只是用来测试,不做训练,可以不传该函数,同时opts传入空就可以
43
+ # 对模型的一些其他优化,可以写可以不写,主要是调用opt.step()进行当前小模型的模型训练
44
+ # 另外,opt不一定就是优化函数,可以是任何数据,其只取决于创建DictCache的时候传入的opts是什么
45
+ torch.nn.utils.clip_grad_norm_(net.parameters(), max_norm=1.0)
46
+ opt.step()
47
+ cache = DictCache([torch.device('cuda'), torch.device('cpu')],models,opts,3,opt_step)#, [cuda_models,cpu_models])
48
+
49
+ # 训练:
50
+ def train():
51
+ [md.train() for md in models]
52
+ for inputs,targets in dataloader:
53
+ inputs,targets = inputs.cuda(),targets.cuda()
54
+ [opt.zero_grad() for opt in opts]
55
+ outs = cache.do_forward(lambda:real_model(inputs))
56
+ loss = loss_fn(outs, targets)
57
+ cache.do_backward(lambda: loss.backward())
58
+ # opt.step()在do_backward里会自动调用
59
+ #print(loss.item())
60
+ #break
61
+ pass
62
+ import time
63
+ print("start")
64
+ start = time.time()
65
+ for i in range(50):
66
+ train()
67
+ sec = time.time()-start
68
+ print("time cost:", sec)
69
+ """
70
+ from buildz.gpuz.test import dm
71
+
72
+ ws = []
73
+ for md in dm.models:
74
+ for net in md.nets:
75
+ ws.append(net.weight.cpu().detach().clone())
76
+
77
+ pass
78
+
79
+ dm.train()
80
+
81
+ nws = []
82
+ for md in dm.models:
83
+ for net in md.nets:
84
+ nws.append(net.weight.cpu().detach().clone())
85
+
86
+ pass
87
+ subs = [(a-b).sum() for a,b in zip(ws, nws)]
88
+
89
+ """
@@ -0,0 +1,124 @@
1
+
2
+ from buildz.gpuz.torch.middle_cache import MiddleCache
3
+ import torch
4
+ from torch import nn,optim
5
+ from torch.utils.data import DataLoader, Dataset
6
+ class TestDataset(Dataset):
7
+ def __init__(self, num, dims):
8
+ self.num = num
9
+ self.dims = dims
10
+ self.datas = torch.rand(num, dims)
11
+ self.targets = torch.rand(num, dims)
12
+ def __len__(self):
13
+ return self.num
14
+ def __getitem__(self, i):
15
+ return self.datas[i], self.targets[i]
16
+ dims = 64
17
+ """
18
+ cd D:\rootz\python\gits\buildz_upd\buildz\gpuz\test
19
+ D:
20
+ python -m buildz.gpuz.test.demo > demo.txt
21
+
22
+ """
23
+ dataset = TestDataset(90, dims)
24
+ dataloader = DataLoader(dataset, 30)
25
+ class MiniModel(nn.Module):
26
+ def __init__(self, dims, mdims, num):
27
+ super().__init__()
28
+ nets = [nn.Linear(dims, mdims)]
29
+ nets += [nn.Linear(mdims,mdims) for i in range(num)]
30
+ nets.append(nn.Linear(mdims,dims))
31
+ self.nets = nn.Sequential(*nets)
32
+ def forward(self, inputs):
33
+ return self.nets(inputs)
34
+ models = [MiniModel(dims, 32, 3) for i in range(6)]
35
+ #opts = [optim.Adam(model.parameters(), lr=0.001) for model in models]
36
+ real_model = nn.Sequential(*models)
37
+ opt = optim.Adam(real_model.parameters(), lr=0.001)
38
+ #可以指定哪些模型全部放cuda或者全部放cpu
39
+ cuda_models = [models[1],models[2]]
40
+ cpu_models = [models[-1]]
41
+ loss_fn = torch.nn.MSELoss()
42
+ cache = MiddleCache(models, 3)#, cal_dv = "cpu", cal_nets = cuda_models, cache_nets = cpu_models)#, [torch.device('cuda'), torch.device('cpu')],models,opts,3,opt_step)#, [cuda_models,cpu_models])
43
+
44
+ # 训练:
45
+ def train():
46
+ cache.train()
47
+ for inputs,targets in dataloader:
48
+ targets = targets.cuda()
49
+ #inputs,targets = inputs.cuda(),targets.cuda()
50
+ opt.zero_grad()
51
+ with cache.wrap_forward():
52
+ outs = real_model(inputs)
53
+ loss = loss_fn(outs, targets)
54
+ with cache.wrap_backward():
55
+ loss.backward()
56
+ torch.nn.utils.clip_grad_norm_(real_model.parameters(), max_norm=1.0)
57
+ opt.step()
58
+ #cache.do_backward(lambda: loss.backward())
59
+ # opt.step()在do_backward里会自动调用
60
+ # print(loss.item())
61
+ # break
62
+ #break
63
+ pass
64
+ import time
65
+ print("start")
66
+ start = time.time()
67
+ for i in range(50):
68
+ train()
69
+ sec = time.time()-start
70
+ print("time cost:", sec)
71
+
72
+ """
73
+ python -m buildz.gpuz.test.dm1
74
+
75
+ from buildz.gpuz.test import dm1 as dm
76
+
77
+ dm.cache.train()
78
+ inputs, targets = list(dm.dataloader)[0]
79
+ dm.opt.zero_grad()
80
+ with dm.cache.wrap_forward():
81
+ outs = dm.real_model(inputs)
82
+
83
+ pass
84
+
85
+ ks = list(dm.cache.datas.keys())
86
+ dts0 = dm.cache.datas[ks[0]]
87
+ net0 = dm.cache.nets[ks[0]]
88
+ [k.shape for k in dts0]
89
+
90
+
91
+ dts1 = dm.cache.datas[ks[1]]
92
+ net1 = dm.cache.nets[ks[1]]
93
+ [k.shape for k in dts1]
94
+
95
+
96
+ ws = []
97
+ for md in dm.models:
98
+ for net in md.nets:
99
+ ws.append(net.weight.cpu().detach().clone())
100
+
101
+ pass
102
+
103
+ dm.train()
104
+
105
+ nws = []
106
+ for md in dm.models:
107
+ for net in md.nets:
108
+ nws.append(net.weight.cpu().detach().clone())
109
+
110
+ pass
111
+ subs = [(a-b).sum() for a,b in zip(ws, nws)]
112
+
113
+ w0 = dm.models[0].nets[-1].weight.cpu().detach()
114
+ w1 = dm.models[1].nets[0].weight.cpu().detach()
115
+
116
+ dm.train()
117
+
118
+ nw0 = dm.models[0].nets[-1].weight.cpu().detach()
119
+ nw1 = dm.models[1].nets[0].weight.cpu().detach()
120
+
121
+ (w0-nw0).sum()
122
+ (w1-nw1).sum()
123
+
124
+ """
@@ -5,6 +5,9 @@ __version__="0.0.1"
5
5
  __author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
6
6
  # 小号多
7
7
 
8
+ from .middle_cache import MiddleCache
9
+
10
+ # 下面的dict_middle也弃了,上面的MiddleCache写的更合理
8
11
  from .dict_middle import DictCache, Fcs
9
12
  #from .dict_middle import *
10
13
  Dict = DictCache
@@ -227,6 +227,7 @@ class DictCache(Base):
227
227
  def hook_forward_pre(self, model, ins):
228
228
  self.no_caches = False
229
229
  nid = id(model)
230
+ #print(f"hook_forward_pre {nid}")
230
231
  if nid not in self.pools:
231
232
  self.copy_forward(nid, model)
232
233
  if self.curr>=0:
@@ -234,10 +235,12 @@ class DictCache(Base):
234
235
  self.curr = nid
235
236
  return self.fc_inputs_to(ins, self.gdv)
236
237
  def do_forward(self, fc):
238
+ #print("FWD")
237
239
  self.no_caches = True
238
240
  self.ctxs = {k:[] for k in self.nets}
239
241
  with torch.autograd.graph.saved_tensors_hooks(self.hook_pack, self.hook_unpack):
240
242
  rst = fc()
243
+ #print("DFWD")
241
244
  return rst.to(self.gdv)
242
245
  def wrap_backward_deal(self, net_id):
243
246
  if self.backward_deal is None:
@@ -245,8 +248,10 @@ class DictCache(Base):
245
248
  self.backward_deal(self.nets[net_id], self.opts[net_id])
246
249
  def hook_backward(self, model, grad_ins, grad_outs):
247
250
  nid = id(model)
251
+ #print(f"hook_backward {nid}")
248
252
  self.wrap_backward_deal(nid)
249
253
  def hook_pack(self, dt):
254
+ #print(f"pack")
250
255
  if self.no_caches:
251
256
  # 不做缓存,数据不处理
252
257
  return -1, dt
@@ -256,6 +261,7 @@ class DictCache(Base):
256
261
  return index, len(self.ctxs[index])-1
257
262
  def hook_unpack(self, x):
258
263
  nid = x[0]
264
+ #print(f"unpack {nid}")
259
265
  if nid<0:
260
266
  return x[1]
261
267
  if nid not in self.pools:
@@ -0,0 +1,80 @@
1
+ #
2
+ '''
3
+ model.register_forward_pre_hook 会在模型forward之前调用
4
+ model.register_forward_hook 会在模型forward之后调用
5
+ model.register_full_backward_hook 会在模型反向梯度计算之后调用,注,模型列表第一个模型会在计算梯度前调用,该hook参数是(model, grad_ins, grad_outs),model是当前模型,grad_outs是后面的模型传来的,grad_ins是grad_outs经过该model计算后往前传的梯度,好像是第一个模型因为不用往前传梯度,提前调用了
6
+ torch.autograd.graph.saved_tensors_hooks(hook_pack, hook_unpack):
7
+ hook_pack会在Tensor计算完成后把之后反向梯度计算要用的tensor进行存储
8
+ hook_unpack是在Tensor反向梯度计算前取回之前存储的tensor,注:调用loss.backward不用在with ...saved_tensors_hooks(..)中
9
+ '''
10
+
11
+ import torch
12
+ from ... import Base
13
+ from ... import pyz
14
+ class MiddleBase(Base):
15
+ def init(self, nets):
16
+ self.hook(nets)
17
+ def before_forward(self):
18
+ pass
19
+ def after_forward(self):
20
+ pass
21
+ def before_backward(self):
22
+ pass
23
+ def after_backward(self):
24
+ pass
25
+ def hook_forward_before(self, model, ins):
26
+ return ins.cpu()
27
+ def hook_forward_after(self, model):
28
+ pass
29
+ def hook_backward_after(self, model):
30
+ pass
31
+ def tensor_save(self, tuple_data):
32
+ obj = tuple_data
33
+ return obj
34
+ def tensor_load(self, obj):
35
+ tuple_data = obj
36
+ return tuple_data
37
+ # 下面是不应修改的部分
38
+ def hook(self, nets):
39
+ net = nets[0]
40
+ self.start_id = id(net)
41
+ self.start_net = net
42
+ hooks = []
43
+ hooks += [net.register_forward_pre_hook(self.hook_forward_before) for net in nets]
44
+ hooks+=[net.register_forward_hook(self.native_hook_forward_after) for net in nets]
45
+ if hasattr(self.start_net, "register_full_backward_hook"):
46
+ hooks+=[net.register_full_backward_hook(self.native_hook_backward_after) for net in nets]
47
+ else:
48
+ hooks+=[net.register_backward_hook(self.native_hook_backward_after) for net in nets]
49
+ self.hooks = hooks
50
+ def unhook(self):
51
+ [hook.remove() for hook in self.hooks]
52
+ def do_forward(self, fc):
53
+ with self.wrap_forward():
54
+ return fc()
55
+ def do_backward(self, fc):
56
+ with self.wrap_backward():
57
+ return fc()
58
+ def wrap_backward(self):
59
+ def wrap_enter():
60
+ self.before_backward()
61
+ def wrap_out(exc_type, exc_val, exc_tb):
62
+ self.hook_backward_after(self.start_net)
63
+ self.after_backward()
64
+ return pyz.With(wrap_enter, wrap_out, True)
65
+ def wrap_forward(self):
66
+ obj = torch.autograd.graph.saved_tensors_hooks(self.tensor_save, self.tensor_load)
67
+ def wrap_enter():
68
+ self.before_forward()
69
+ obj.__enter__()
70
+ def wrap_out(exc_type, exc_val, exc_tb):
71
+ obj.__exit__(exc_type, exc_val, exc_tb)
72
+ self.after_forward()
73
+ return pyz.With(wrap_enter, wrap_out, True)
74
+ def native_hook_backward_after(self, model, grad_up, grad_src):
75
+ if id(model)==self.start_id:
76
+ return
77
+ self.hook_backward_after(model)
78
+ def native_hook_forward_after(self, model, ins, outs):
79
+ self.hook_forward_after(model)
80
+ pass
@@ -0,0 +1,143 @@
1
+ #
2
+
3
+ from .middle_base import MiddleBase
4
+ import torch
5
+ class MiddleCache(MiddleBase):
6
+ '''
7
+ nets: 模型列表
8
+ win_size: gpu设备可存放的模型数量
9
+ deal_after_backup: fc(model) 或 None, 在模型进行backward后调用
10
+ cal_dv: 计算设备,默认cuda
11
+ cache_dv: 缓存设备,默认cpu
12
+ fc_inputs_to: fc(inputs, dv) 或 None, 需要把输入参数转换成设备dv对应的数据时候使用,默认输入参数是Tensor的tuple或者就是Tensor
13
+ cal_nets: 模型列表,nets中的一部分,不进行两个设备转换,而是一直放在cal_dv上的模型
14
+ cache_nets: 模型列表,nets中的一部分,不进行两个设备转换,而是一直放在cache_dv上的模型
15
+ preload: 预加载,把模型加载到计算设备时,把后面的模型也加载到计算设备上(已经加载到计算设备上的放缓存设备中)
16
+ '''
17
+ def init(self, nets, win_size=1, deal_after_backup=None, cal_dv='cuda', cache_dv='cpu', fc_inputs_to = None, cal_nets = [], cache_nets = [], preload = False):
18
+ cache_dv = torch.device(cache_dv) if type(cache_dv)==str else cache_dv
19
+ cal_dv = torch.device(cal_dv) if type(cal_dv)==str else cal_dv
20
+ [net.to(cache_dv) for net in cache_nets]
21
+ [net.to(cal_dv) for net in cal_nets]
22
+ self.src = nets
23
+ static_dv = {}
24
+ static_dv.update({id(net):cache_dv for net in cache_nets})
25
+ static_dv.update({id(net):cal_dv for net in cal_nets})
26
+ self.static_dv = static_dv
27
+ self.nets = {id(net):net for net in nets if id(net) not in self.static_dv}
28
+ # TEST CODE
29
+ # self.indexes = {}
30
+ # for i in range(len(nets)):
31
+ # self.indexes[id(nets[i])] = i
32
+ # DONE
33
+ self.cache_dv = cache_dv
34
+ self.cal_dv = cal_dv
35
+ self.hook(nets)
36
+ #
37
+ self.datas = {id(net):[] for net in nets}
38
+ self.cal_ids = []
39
+ self.deal_after_backup = deal_after_backup
40
+ if fc_inputs_to is None:
41
+ fc_inputs_to = self.list_inputs_to
42
+ self.inputs_to = fc_inputs_to
43
+ self.nexts = {}
44
+ self.prevs = {}
45
+ self.curr = -1
46
+ self.mark_static = None
47
+ self.win_size = win_size
48
+ self.preload = preload
49
+ def train(self):
50
+ [net.train() for net in self.src]
51
+ def eval(self):
52
+ [net.eval() for net in self.src]
53
+ @staticmethod
54
+ def list_inputs_to(datas, dv):
55
+ if isinstance(datas, torch.Tensor):
56
+ return datas.to(dv)
57
+ # assert datas is not None, "inputs datas is null"
58
+ inputs = tuple([k.to(dv) for k in datas])
59
+ return inputs
60
+ def before_forward(self):
61
+ self.curr = -1
62
+ for mid in self.datas:
63
+ self.datas[mid] = []
64
+ def after_forward(self):
65
+ pass
66
+ def before_backward(self):
67
+ self.curr = -1
68
+ def after_backward(self):
69
+ pass
70
+ def to_dv(self, mid, dv):
71
+ self.nets[mid].to(dv)
72
+ self.datas[mid] = [self.inputs_to(k, dv) if k is not None else k for k in self.datas[mid]]
73
+ def to_cal(self, mid, pop = 0):
74
+ if mid in self.cal_ids:
75
+ return 0
76
+ if len(self.cal_ids)>=self.win_size:
77
+ xid = self.cal_ids.pop(pop)
78
+ #print(f"model_{self.indexes[xid]} to CPU device")
79
+ self.to_dv(xid, self.cache_dv)
80
+ #print(f"model_{self.indexes[mid]} to CUDA device")
81
+ self.to_dv(mid, self.cal_dv)
82
+ if pop==-1:
83
+ self.cal_ids = [mid]+self.cal_ids
84
+ else:
85
+ self.cal_ids.append(mid)
86
+ return 1
87
+ def hook_forward_before(self, model, ins):
88
+ mid = id(model)
89
+ self.mark_static = mid in self.static_dv
90
+ if self.mark_static:
91
+ # assert ins is not None, "hook_forward_before A"
92
+ return self.inputs_to(ins, self.static_dv[mid])
93
+ prev = self.curr
94
+ if prev >= 0:
95
+ self.nexts[prev] = mid
96
+ if mid not in self.prevs:
97
+ self.prevs[mid] = prev
98
+ self.curr = mid
99
+ self.loop_to_cal(mid, 0, self.nexts)
100
+ # assert ins is not None, "hook_forward_before B"
101
+ return self.inputs_to(ins, self.cal_dv)
102
+ def hook_forward_after(self, model):
103
+ pass
104
+ def hook_backward_after(self, model):
105
+ mid = id(model)
106
+ if self.deal_after_backup is not None:
107
+ self.deal_after_backup(model)
108
+ if id in self.static_dv:
109
+ return
110
+ after = self.curr
111
+ if after>=0:
112
+ self.prevs[after] = mid
113
+ self.curr = mid
114
+ def tensor_save(self, tuple_data):
115
+ if self.mark_static:
116
+ return -1, tuple_data
117
+ index = len(self.datas[self.curr])
118
+ self.datas[self.curr].append(tuple_data)
119
+ return self.curr, index
120
+ def tensor_load(self, obj):
121
+ if obj[0]<0:
122
+ return obj[1]
123
+ curr, index = obj
124
+ self.loop_to_cal(curr, -1, self.prevs)
125
+ tuple_data = self.datas[curr][index]
126
+ # assert tuple_data is not None
127
+ self.datas[curr][index] = None
128
+ return tuple_data
129
+ def loop_to_cal(self, mid, pop, nexts):
130
+ if mid in self.cal_ids:
131
+ return
132
+ self.to_cal(mid, pop)
133
+ if not self.preload:
134
+ return
135
+ count = 1
136
+ while count<self.win_size and mid in nexts:
137
+ mid = nexts[mid]
138
+ if mid in self.cal_ids:
139
+ break
140
+ self.to_cal(mid, pop)
141
+ count+=1
142
+
143
+ pass
@@ -0,0 +1,79 @@
1
+ from . import Base
2
+ import os,sys,json,time
3
+ class Key:
4
+ first='first'
5
+ ifirst = 0
6
+ last= 'last'
7
+ ilast = -1
8
+ @staticmethod
9
+ def check_first(val):
10
+ return val in (Key.first, Key.ifirst)
11
+ @staticmethod
12
+ def check_last(val):
13
+ return val in (Key.last, Key.ilast)
14
+ class Path(Base):
15
+ Key = Key
16
+ def init(self, **maps):
17
+ self.paths = {}
18
+ self.fcs = {}
19
+ self.lasts = {}
20
+ k = "check_abs"
21
+ self.check_abs = True
22
+ if k in maps:
23
+ self.check_abs = maps[k]
24
+ del maps[k]
25
+ for k, v in maps.items():
26
+ self.set(k, v)
27
+ @staticmethod
28
+ def dir(fp):
29
+ return os.path.dirname(fp)
30
+ @staticmethod
31
+ def join(*a):
32
+ return os.path.join(*a)
33
+ @staticmethod
34
+ def rjoin(path, *a):
35
+ a = [k.strip() for k in a if k is not None and k.strip()!=""]
36
+ if len(a)==0:
37
+ return None
38
+ if path is None:
39
+ return os.path.join(*a)
40
+ return os.path.join(path, *a)
41
+ @staticmethod
42
+ def rfp(paths, *a, last=-1, check_abs=False):
43
+ a = [k.strip() for k in a if k is not None and k.strip()!=""]
44
+ if len(a)==0:
45
+ return None
46
+ if check_abs and len(a)>0:
47
+ f = a[0]
48
+ if f[:1]=="/" or f.find(":")>0:
49
+ return Path.join(*a)
50
+ #print(f"[TESTZ] a: {a}, paths: {paths}")
51
+ #fp = os.path.join(*a)
52
+ for path in paths:
53
+ _fp = Path.rjoin(path, *a)
54
+ if os.path.exists(_fp):
55
+ return _fp
56
+ return Path.rjoin(paths[last], *a)
57
+ def add(self, path, name=None, index=0):
58
+ self.paths[name].insert(index, path)
59
+ def set(self, paths, name=None, last = -1, curr = None):
60
+ if type(paths) not in (list, tuple):
61
+ paths = [paths]
62
+ if curr is not None and None not in paths:
63
+ if Key.check_first(curr):
64
+ paths = [None]+paths
65
+ elif Key.check_last(curr):
66
+ paths.append(None)
67
+ else:
68
+ assert False
69
+ self.paths[name] = paths
70
+ self.lasts[name] = last
71
+ def fc(*a):
72
+ return self.rfp(paths, *a, last=last, check_abs=self.check_abs)
73
+ self.fcs[name] = fc
74
+ def __getattr__(self, name):
75
+ return self.fcs[name]
76
+ def call(self, *obj):
77
+ return self.fcs[None](*obj)
78
+
79
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.9.4
3
+ Version: 0.9.6
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
@@ -10,6 +10,7 @@ buildz/cmd.py
10
10
  buildz/confz.py
11
11
  buildz/dz.py
12
12
  buildz/logz.py
13
+ buildz/path.py
13
14
  buildz/pathz.py
14
15
  buildz/pyz.py
15
16
  buildz/tls.py
@@ -119,6 +120,8 @@ buildz/fz/fio.py
119
120
  buildz/fz/lsf.py
120
121
  buildz/gpuz/test/analyze.py
121
122
  buildz/gpuz/test/demo.py
123
+ buildz/gpuz/test/dm.py
124
+ buildz/gpuz/test/dm1.py
122
125
  buildz/gpuz/test/report.txt
123
126
  buildz/gpuz/test/take_gpu_mem.py
124
127
  buildz/gpuz/test/test_atten_demo.py
@@ -127,6 +130,8 @@ buildz/gpuz/test/test_multi_demo.py
127
130
  buildz/gpuz/test/test_resnet_demo.py
128
131
  buildz/gpuz/torch/__init__.py
129
132
  buildz/gpuz/torch/dict_middle.py
133
+ buildz/gpuz/torch/middle_base.py
134
+ buildz/gpuz/torch/middle_cache.py
130
135
  buildz/gpuz/torch/multi_dict_middle.py
131
136
  buildz/gpuz/torch/seq_middle.py
132
137
  buildz/html/__init__.py
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.9.4',
10
+ version = '0.9.6',
11
11
  keywords='buildz',
12
12
  long_description=open('README.md', 'r', encoding="utf-8").read(),
13
13
  long_description_content_type='text/markdown',