buildz 0.6.48__tar.gz → 0.6.50__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 (323) hide show
  1. {buildz-0.6.48/buildz.egg-info → buildz-0.6.50}/PKG-INFO +1 -1
  2. {buildz-0.6.48 → buildz-0.6.50}/buildz/dz/mapz.py +17 -3
  3. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/wrap.py +1 -0
  4. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/base.py +1 -1
  5. buildz-0.6.50/buildz/iocz/conf/base.py +3 -0
  6. buildz-0.6.50/buildz/iocz/conf/mg.py +80 -0
  7. buildz-0.6.50/buildz/iocz/conf/unit.py +16 -0
  8. buildz-0.6.50/buildz/iocz/ioc/__init__.py +2 -0
  9. buildz-0.6.50/buildz/iocz/ioc/base.py +37 -0
  10. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/bind.py +1 -1
  11. buildz-0.6.50/buildz/iocz/ioc/builds.py +64 -0
  12. buildz-0.6.50/buildz/iocz/ioc/confs.py +15 -0
  13. buildz-0.6.50/buildz/iocz/ioc/datas.py +26 -0
  14. buildz-0.6.50/buildz/iocz/ioc/dataset.py +76 -0
  15. buildz-0.6.50/buildz/iocz/ioc/encapes.py +106 -0
  16. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/env.py +1 -1
  17. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/ids.py +2 -3
  18. buildz-0.6.50/buildz/iocz/ioc/init.py +4 -0
  19. buildz-0.6.50/buildz/iocz/ioc/mg.py +88 -0
  20. buildz-0.6.50/buildz/iocz/ioc/single.py +56 -0
  21. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/tdata.py +13 -8
  22. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/tdict.py +7 -5
  23. buildz-0.6.50/buildz/iocz/ioc/test.py +45 -0
  24. buildz-0.6.50/buildz/iocz/ioc/test1.py +36 -0
  25. buildz-0.6.50/buildz/iocz/ioc/unit.py +60 -0
  26. buildz-0.6.50/buildz/iocz/ioc_deal/base.py +49 -0
  27. buildz-0.6.50/buildz/iocz/ioc_deal/deal.py +33 -0
  28. buildz-0.6.50/buildz/iocz/ioc_deal/obj.py +66 -0
  29. {buildz-0.6.48 → buildz-0.6.50}/buildz/pathz.py +14 -2
  30. {buildz-0.6.48 → buildz-0.6.50}/buildz/pyz.py +15 -1
  31. buildz-0.6.50/buildz/tls.py +2 -0
  32. {buildz-0.6.48 → buildz-0.6.50/buildz.egg-info}/PKG-INFO +1 -1
  33. {buildz-0.6.48 → buildz-0.6.50}/buildz.egg-info/SOURCES.txt +13 -1
  34. {buildz-0.6.48 → buildz-0.6.50}/setup.py +1 -1
  35. buildz-0.6.48/buildz/iocz/ioc/base.py +0 -14
  36. buildz-0.6.48/buildz/iocz/ioc/confs.py +0 -5
  37. buildz-0.6.48/buildz/iocz/ioc/datas.py +0 -23
  38. buildz-0.6.48/buildz/iocz/ioc/dataset.py +0 -35
  39. buildz-0.6.48/buildz/iocz/ioc/encapes.py +0 -26
  40. buildz-0.6.48/buildz/iocz/ioc/envm.py +0 -2
  41. buildz-0.6.48/buildz/iocz/ioc/unit.py +0 -26
  42. buildz-0.6.48/buildz/iocz/ioc_deal/obj.py +0 -79
  43. {buildz-0.6.48 → buildz-0.6.50}/LICENSE +0 -0
  44. {buildz-0.6.48 → buildz-0.6.50}/MANIFEST.in +0 -0
  45. {buildz-0.6.48 → buildz-0.6.50}/README.md +0 -0
  46. {buildz-0.6.48 → buildz-0.6.50}/buildz/__init__.py +0 -0
  47. {buildz-0.6.48 → buildz-0.6.50}/buildz/__main__.py +0 -0
  48. {buildz-0.6.48 → buildz-0.6.50}/buildz/argx.py +0 -0
  49. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/__init__.py +0 -0
  50. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/argz.py +0 -0
  51. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/build.py +0 -0
  52. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/callz.py +0 -0
  53. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/evalx.py +0 -0
  54. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/test.py +0 -0
  55. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/test_obj.py +0 -0
  56. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/tests/conf.js +0 -0
  57. {buildz-0.6.48 → buildz-0.6.50}/buildz/argz/testx.py +0 -0
  58. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/__init__.py +0 -0
  59. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/cache.py +0 -0
  60. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/config.py +0 -0
  61. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/dbs.py +0 -0
  62. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/deal.py +0 -0
  63. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/deal_list.py +0 -0
  64. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/deal_type.py +0 -0
  65. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/defs.py +0 -0
  66. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/factory.py +0 -0
  67. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/init.py +0 -0
  68. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/log.py +0 -0
  69. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/request.py +0 -0
  70. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/run.py +0 -0
  71. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/save.py +0 -0
  72. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/cache/cache.js +0 -0
  73. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/config/base.js +0 -0
  74. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/config/config.js +0 -0
  75. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/data/fp.js +0 -0
  76. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/data/item1.js +0 -0
  77. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/data/item2.js +0 -0
  78. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/res/data/test.js +0 -0
  79. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/test.py +0 -0
  80. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/test/xtest.py +0 -0
  81. {buildz-0.6.48 → buildz-0.6.50}/buildz/auto/verify.py +0 -0
  82. {buildz-0.6.48 → buildz-0.6.50}/buildz/base.py +0 -0
  83. {buildz-0.6.48 → buildz-0.6.50}/buildz/cachez/__init__.py +0 -0
  84. {buildz-0.6.48 → buildz-0.6.50}/buildz/cachez/cache.py +0 -0
  85. {buildz-0.6.48 → buildz-0.6.50}/buildz/cmd.py +0 -0
  86. {buildz-0.6.48 → buildz-0.6.50}/buildz/confz.py +0 -0
  87. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/__init__.py +0 -0
  88. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/__main__.py +0 -0
  89. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/__init__.py +0 -0
  90. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/basez.py +0 -0
  91. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/clickhousez.py +0 -0
  92. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/lib/readme +0 -0
  93. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/mysqlz.py +0 -0
  94. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/oraclez.py +0 -0
  95. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/orm.py +0 -0
  96. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/postgresqlz.py +0 -0
  97. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/sqlite3z.py +0 -0
  98. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/dv/structz.py +0 -0
  99. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/install.txt +0 -0
  100. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/run.conf +0 -0
  101. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/runz.py +0 -0
  102. {buildz-0.6.48 → buildz-0.6.50}/buildz/db/tls.py +0 -0
  103. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/ioc/deal.py +0 -0
  104. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/ioc/help.py +0 -0
  105. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/myers/deal.py +0 -0
  106. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/myers/help.py +0 -0
  107. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/conf/ioc.js +0 -0
  108. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/conf/main.js +0 -0
  109. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/conf/myers.js +0 -0
  110. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/conf/search.js +0 -0
  111. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/conf/xf.js +0 -0
  112. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/help/default.js +0 -0
  113. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/help/ioc.js +0 -0
  114. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/help/myers.js +0 -0
  115. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/help/search.js +0 -0
  116. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/help/xf.js +0 -0
  117. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/res/test.js +0 -0
  118. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/search/deal.py +0 -0
  119. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/search/help.py +0 -0
  120. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/test.py +0 -0
  121. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/xf/deal.py +0 -0
  122. {buildz-0.6.48 → buildz-0.6.50}/buildz/demo/xf/help.py +0 -0
  123. {buildz-0.6.48 → buildz-0.6.50}/buildz/dz/__init__.py +0 -0
  124. {buildz-0.6.48 → buildz-0.6.50}/buildz/evalz/__init__.py +0 -0
  125. {buildz-0.6.48 → buildz-0.6.50}/buildz/evalz/evalz.py +0 -0
  126. {buildz-0.6.48 → buildz-0.6.50}/buildz/evalz/res/default.js +0 -0
  127. {buildz-0.6.48 → buildz-0.6.50}/buildz/evalz/test.py +0 -0
  128. {buildz-0.6.48 → buildz-0.6.50}/buildz/fz/__init__.py +0 -0
  129. {buildz-0.6.48 → buildz-0.6.50}/buildz/fz/dirz.py +0 -0
  130. {buildz-0.6.48 → buildz-0.6.50}/buildz/fz/fhs.py +0 -0
  131. {buildz-0.6.48 → buildz-0.6.50}/buildz/fz/fio.py +0 -0
  132. {buildz-0.6.48 → buildz-0.6.50}/buildz/fz/lsf.py +0 -0
  133. {buildz-0.6.48 → buildz-0.6.50}/buildz/html/__init__.py +0 -0
  134. {buildz-0.6.48 → buildz-0.6.50}/buildz/html/test/demo.html +0 -0
  135. {buildz-0.6.48 → buildz-0.6.50}/buildz/html/test/test.py +0 -0
  136. {buildz-0.6.48 → buildz-0.6.50}/buildz/html/xml.py +0 -0
  137. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/__init__.py +0 -0
  138. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/base.py +0 -0
  139. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/init.py +0 -0
  140. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc/base.py +0 -0
  141. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc/conf.py +0 -0
  142. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc/confs.py +0 -0
  143. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc/decorator.py +0 -0
  144. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc/loads.py +0 -0
  145. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc/single.py +0 -0
  146. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/base.py +0 -0
  147. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/branch.py +0 -0
  148. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/call.py +0 -0
  149. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/calls.py +0 -0
  150. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
  151. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  152. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  153. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  154. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  155. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  156. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  157. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  158. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  159. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  160. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  161. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  162. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  163. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  164. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  165. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  166. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  167. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  168. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  169. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  170. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  171. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
  172. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  173. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  174. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  175. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/deal.py +0 -0
  176. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/demo.py +0 -0
  177. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/env.py +0 -0
  178. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/init.py +0 -0
  179. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/ioc.py +0 -0
  180. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/iocf.py +0 -0
  181. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/join.py +0 -0
  182. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/list.py +0 -0
  183. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/map.py +0 -0
  184. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/mcall.py +0 -0
  185. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/obj.py +0 -0
  186. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/ovar.py +0 -0
  187. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/ref.py +0 -0
  188. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/refs.py +0 -0
  189. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/val.py +0 -0
  190. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/var.py +0 -0
  191. {buildz-0.6.48 → buildz-0.6.50}/buildz/ioc/ioc_deal/xfile.py +0 -0
  192. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/deals.py +0 -0
  193. {buildz-0.6.48 → buildz-0.6.50}/buildz/iocz/ioc/dm.py +0 -0
  194. {buildz-0.6.48 → buildz-0.6.50}/buildz/logz.py +0 -0
  195. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/__init__.py +0 -0
  196. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/mhttp/__init__.py +0 -0
  197. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/mhttp/caps.py +0 -0
  198. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/mhttp/mhttp.py +0 -0
  199. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/mhttp/proxy.py +0 -0
  200. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/mhttp/record.py +0 -0
  201. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/sslz/__init__.py +0 -0
  202. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/sslz/gen.py +0 -0
  203. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/sslz/gen.pyi +0 -0
  204. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/test/__main__.py +0 -0
  205. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/test/test.py +0 -0
  206. {buildz-0.6.48 → buildz-0.6.50}/buildz/netz/test/test_cli.py +0 -0
  207. {buildz-0.6.48 → buildz-0.6.50}/buildz/tools.py +0 -0
  208. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/__init__.py +0 -0
  209. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/myers_diff.py +0 -0
  210. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/test_xfind.py +0 -0
  211. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/time/__init__.py +0 -0
  212. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/time/timez.py +0 -0
  213. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/tio/__init__.py +0 -0
  214. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/tio/base.py +0 -0
  215. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/tio/getch.py +0 -0
  216. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/tio/lx.py +0 -0
  217. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/tio/test.py +0 -0
  218. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/tio/win.py +0 -0
  219. {buildz-0.6.48 → buildz-0.6.50}/buildz/tz/xfind.py +0 -0
  220. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/__init__.py +0 -0
  221. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/__main__.py +0 -0
  222. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/base.py +0 -0
  223. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/code.py +0 -0
  224. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/code_modify.py +0 -0
  225. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/copy_old.py +0 -0
  226. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/file.py +0 -0
  227. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/base.py +0 -0
  228. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/buffer.py +0 -0
  229. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/listz.py +0 -0
  230. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/lr.py +0 -0
  231. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/lrval.py +0 -0
  232. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/mapz.py +0 -0
  233. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/nextz.py +0 -0
  234. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/reval.py +0 -0
  235. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/setz.py +0 -0
  236. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/spc.py +0 -0
  237. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/spt.py +0 -0
  238. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/deal/strz.py +0 -0
  239. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/exp.py +0 -0
  240. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/item.py +0 -0
  241. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/mg.py +0 -0
  242. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loader/pos.py +0 -0
  243. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/base.py +0 -0
  244. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/buffer.py +0 -0
  245. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/listmapz.py +0 -0
  246. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/listz.py +0 -0
  247. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/lr.py +0 -0
  248. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/lrval.py +0 -0
  249. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/mapz.py +0 -0
  250. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/nextz.py +0 -0
  251. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/reval.py +0 -0
  252. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/setz.py +0 -0
  253. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/spc.py +0 -0
  254. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/spt.py +0 -0
  255. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/strz.py +0 -0
  256. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/strz_new.py +0 -0
  257. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/deal/strz_old.py +0 -0
  258. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/exp.py +0 -0
  259. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/item.py +0 -0
  260. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/mg.py +0 -0
  261. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/pos.py +0 -0
  262. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/test.py +0 -0
  263. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz/test1.py +0 -0
  264. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/base.py +0 -0
  265. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/buffer.py +0 -0
  266. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
  267. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
  268. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
  269. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
  270. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
  271. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
  272. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
  273. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
  274. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/spc.py +0 -0
  275. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
  276. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
  277. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/strz_new.py +0 -0
  278. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/deal/strz_old.py +0 -0
  279. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/exp.py +0 -0
  280. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/item.py +0 -0
  281. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/mg.py +0 -0
  282. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/pos.py +0 -0
  283. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/test.py +0 -0
  284. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/loaderz_nexp/test1.py +0 -0
  285. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/mapz.py +0 -0
  286. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/read.py +0 -0
  287. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/readz.py +0 -0
  288. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/readz_nexp.py +0 -0
  289. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/stack.py +0 -0
  290. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/write.py +0 -0
  291. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/base.py +0 -0
  292. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/conf.py +0 -0
  293. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/deal/jsonval.py +0 -0
  294. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/deal/listmapz.py +0 -0
  295. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/deal/listz.py +0 -0
  296. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/deal/mapz.py +0 -0
  297. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/deal/reval.py +0 -0
  298. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/deal/strz.py +0 -0
  299. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/itemz.py +0 -0
  300. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writer/mg.py +0 -0
  301. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/base.py +0 -0
  302. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/conf.py +0 -0
  303. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/deal/jsonval.py +0 -0
  304. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/deal/listmapz.py +0 -0
  305. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/deal/listz.py +0 -0
  306. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/deal/mapz.py +0 -0
  307. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/deal/reval.py +0 -0
  308. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/deal/strz.py +0 -0
  309. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/itemz.py +0 -0
  310. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/mg.py +0 -0
  311. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/test.py +0 -0
  312. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writerz/testx.py +0 -0
  313. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/writez.py +0 -0
  314. {buildz-0.6.48 → buildz-0.6.50}/buildz/xf/xargs.py +0 -0
  315. {buildz-0.6.48 → buildz-0.6.50}/buildz/xz/__init__.py +0 -0
  316. {buildz-0.6.48 → buildz-0.6.50}/buildz/xz/conf.js +0 -0
  317. {buildz-0.6.48 → buildz-0.6.50}/buildz/xz/data.js +0 -0
  318. {buildz-0.6.48 → buildz-0.6.50}/buildz/xz/test.py +0 -0
  319. {buildz-0.6.48 → buildz-0.6.50}/buildz/xz/trs.py +0 -0
  320. {buildz-0.6.48 → buildz-0.6.50}/buildz.egg-info/dependency_links.txt +0 -0
  321. {buildz-0.6.48 → buildz-0.6.50}/buildz.egg-info/top_level.txt +0 -0
  322. {buildz-0.6.48 → buildz-0.6.50}/notes/notes.txt +0 -0
  323. {buildz-0.6.48 → buildz-0.6.50}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.48
3
+ Version: 0.6.50
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
@@ -1,4 +1,18 @@
1
1
  from buildz import pyz
2
+ def islist(obj):
3
+ return type(obj) in (list, tuple)
4
+ def tolist(obj):
5
+ if not islist(obj):
6
+ obj = [obj]
7
+ return obj
8
+ def dict2list(obj):
9
+ if type(obj)!=dict:
10
+ return obj
11
+ return list(obj.items())
12
+ def dict2iter(obj):
13
+ if type(obj)!=dict:
14
+ return obj
15
+ return obj.items()
2
16
  def get(obj, key, default=None, set = False):
3
17
  if type(obj)==list:
4
18
  key = int(key)
@@ -172,7 +186,7 @@ def dhas(maps, keys):
172
186
 
173
187
  pass
174
188
 
175
- def dget(maps, keys):
189
+ def dget(maps, keys, default = None):
176
190
  if type(keys) not in (list,tuple):
177
191
  keys = [keys]
178
192
  for key in keys:
@@ -188,7 +202,7 @@ def dget(maps, keys):
188
202
  else:
189
203
  find = False
190
204
  if not find:
191
- return None,0
205
+ return default,0
192
206
  maps = maps[key]
193
207
  return maps,1
194
208
 
@@ -208,7 +222,7 @@ def dremove(maps, keys):
208
222
  if first or len(maps[key])==0:
209
223
  del maps[key]
210
224
  first=0
211
- return None
225
+ return
212
226
 
213
227
  pass
214
228
 
@@ -19,6 +19,7 @@ def pkg(fp):
19
19
  pass
20
20
  def imports(dp=".", pts=".*\.py$", pfx=""):
21
21
  """
22
+ not include test: r"^(?!.*(?:test|bak)).*\.py$"
22
23
  find filepath by dirpath(dp) and pattern(pts),
23
24
  import:
24
25
  filepath = ".".join(filepath.split(".")[:-1])
@@ -2,5 +2,5 @@ from ..base import Base, fcBase
2
2
  from .. import pathz
3
3
  path = pathz.Path()
4
4
  path.set('local', path.dir(__file__))
5
- path.set('conf', path.local('conf'),curr=0)
5
+ path.set('conf', path.local('conf'), curr=0)
6
6
 
@@ -0,0 +1,3 @@
1
+ from ..ioc.base import *
2
+ from ..ioc.confs import Confs
3
+
@@ -0,0 +1,80 @@
1
+
2
+ #
3
+ from ..ioc.mg import Manager, GetKey, Ids
4
+ from ... import dz,xf
5
+ from .unit import ConfUnit
6
+ spt = Ids(".")
7
+ class DLKey(GetKey):
8
+ @staticmethod
9
+ def Load(conf):
10
+ keys, kfind = dz.dget(conf, spt("dict.key"))
11
+ lids, lfind = dz.dget(conf, spt("list.index"))
12
+ default = dz.dget(conf, 'default', None)
13
+ return DLKey(keys, lids, default)
14
+ def init(self, keys, indexes, default=None):
15
+ super().init()
16
+ self.keys = dz.tolist(keys)
17
+ self.indexes = dz.tolist(indexes)
18
+ self.default = default
19
+ def list_get(self, conf):
20
+ for indexes in self.indexes:
21
+ obj, find = dz.dget(conf, indexes)
22
+ if find:
23
+ return obj, find
24
+ return self.default, 0
25
+ def dict_get(self, conf):
26
+ for keys in self.keys:
27
+ obj, find = dz.dget(conf, keys)
28
+ if find:
29
+ return obj, find
30
+ return self.default, 0
31
+ def call(self, conf):
32
+ if dz.islist(conf):
33
+ return self.list_get(conf)
34
+ return self.dict_get(conf)
35
+ def fill(self, conf):
36
+ pass
37
+ default_conf = None
38
+ def init():
39
+ global default_conf
40
+ if default_conf not None:
41
+ return
42
+ default_conf = xf.loads(r'''
43
+ {
44
+ id.spt: '.'
45
+ conf:{
46
+ dict.key = 'id'
47
+ list.index = [(0,1)]
48
+ default: null
49
+ }
50
+ deal: {
51
+ spt: '.'
52
+ dict.key = type
53
+ list.index = ((0,0),0)
54
+ default: null
55
+ }
56
+ }
57
+ ''')
58
+ default_conf = dz.flush_maps(default_conf)
59
+ class ConfManager(Manager):
60
+ def init(self, conf=None):
61
+ init()
62
+ spt = Ids(".")
63
+ if conf is None:
64
+ conf = {}
65
+ if type(conf)==str:
66
+ conf = xf.loads(conf)
67
+ conf = dz.flush_maps(conf)
68
+ dz.fill(default_conf, conf, 0)
69
+ id_spt, find = dz.dget(conf, spt("id.spt"),".")
70
+ ids = Ids(id_spt)
71
+ deal_spt, find = dz.dget(conf, spt("id.spt"), id_spt)
72
+ deal_ids = Ids(deal_spt)
73
+ deal_key = DLKey(conf['deal'])
74
+ conf_key = DLKey(conf['conf'])
75
+ super().init(ids, deal_key, conf_key, deal_ids)
76
+ def add_conf(self, conf):
77
+ unit = ConfUnit(conf, self)
78
+ return unit
79
+
80
+ pass
@@ -0,0 +1,16 @@
1
+
2
+ #
3
+ from ..ioc.unit import Unit
4
+ '''
5
+ id|namespace|ns:
6
+ deal_id|deal_ns:
7
+ confs.pub: [
8
+
9
+ ]
10
+ builds: [
11
+
12
+ ]
13
+ '''
14
+ class ConfUnit(Unit):
15
+ def init(self, conf, mg):
16
+ pass
@@ -0,0 +1,2 @@
1
+ #
2
+ from .init import *
@@ -0,0 +1,37 @@
1
+ from ..base import *
2
+ basepath = path
3
+ path = pathz.Path()
4
+ path.set("conf", basepath.local("ioc/conf"), curr=0)
5
+ class Encape(Base):
6
+ def call(self, params=None, **maps):
7
+ return None
8
+
9
+ pass
10
+ class Deal(Base):
11
+ def deal(self, conf, unit):
12
+ return None
13
+ def call(self, conf, unit):
14
+ 'encape, conf, conf_need_udpate'
15
+ encape = self.deal(conf,unit)
16
+ return encape,conf,False
17
+
18
+ pass
19
+
20
+ class Params(Base):
21
+ def clone(self, **upds):
22
+ args, maps = list(self.args), dict(self.maps)
23
+ maps.update(upds)
24
+ return Params(args, maps)
25
+ def init(self, *args, **maps):
26
+ self.args = args
27
+ self.maps = maps
28
+ def get(self, key, default=None):
29
+ if key not in self.maps:
30
+ return default
31
+ return self.maps[key]
32
+ def __getattr__(self, key):
33
+ if key not in self.maps:
34
+ return None
35
+ return self.maps[key]
36
+
37
+ pass
@@ -1,5 +1,5 @@
1
1
  #
2
- from buildz import Base
2
+ from ... import Base
3
3
 
4
4
  class Bind(Base):
5
5
  def init(self):
@@ -0,0 +1,64 @@
1
+ #
2
+ from .base import *
3
+ from .datas import Datas
4
+ from .confs import Confs
5
+ from .encapes import Encapes
6
+ from ... import pyz
7
+
8
+ class Builds(Base):
9
+ def init(self, unit):
10
+ self.need_build = False
11
+ self.jobs = []
12
+ self.dones = []
13
+ self.unit = unit
14
+ self.builds = None
15
+ def bind(self, builds):
16
+ if self.builds == builds:
17
+ return
18
+ self.builds = builds
19
+ self.builds.add(self)
20
+ def add(self, conf):
21
+ self.jobs.append(conf)
22
+ self.need_build = True
23
+ if self.builds is not None:
24
+ self.builds.add(self)
25
+ def build(self):
26
+ if not self.need_build:
27
+ return
28
+ self.need_build = False
29
+ for conf in self.jobs:
30
+ if Confs.is_conf(conf):
31
+ encape,c,u = self.unit.get_encape(conf, self.unit.ns, self.unit.id)
32
+ elif isinstance(conf, Encape):
33
+ encape = conf
34
+ else:
35
+ encape,c,u = self.unit.get_encape(conf, self.unit.ns, self.unit.id)
36
+ encape()
37
+ self.dones.append(conf)
38
+ self.jobs = []
39
+ def call(self):
40
+ self.build()
41
+ class Buildset(Base):
42
+ def init(self, mg):
43
+ self.mg = mg
44
+ self.need_build = False
45
+ self.jobs = []
46
+ self.dones = []
47
+ def add(self, builds):
48
+ if builds.need_build:
49
+ self.jobs.append(builds)
50
+ self.need_build = True
51
+ builds.bind(self)
52
+ def build(self):
53
+ if not self.need_build:
54
+ return
55
+ self.need_build = False
56
+ for builds in self.jobs:
57
+ builds()
58
+ self.dones.append(builds)
59
+ self.jobs = []
60
+ self.need_build = False
61
+ def call(self):
62
+ self.build()
63
+
64
+ pass
@@ -0,0 +1,15 @@
1
+ #
2
+ from .tdata import TagData
3
+ from .datas import Datas
4
+ from .dataset import Dataset
5
+ class Confs(Datas):
6
+ @staticmethod
7
+ def is_conf(obj):
8
+ return type(obj) in (list, tuple, dict)
9
+ def init(self, ns=None, id=None, deal_ns = None, dts=None):
10
+ super().init(ns, id, dts)
11
+ self.deal_ns = deal_ns
12
+ def set(self, key, val, tag=None):
13
+ val = (val, self.deal_ns)
14
+ super().set(key, val, tag)
15
+
@@ -0,0 +1,26 @@
1
+
2
+ from ... import pyz, dz
3
+ from .tdata import TagData
4
+ class Datas(TagData):
5
+ '''
6
+ 一个单元下的数据集
7
+ '''
8
+ def init(self, ns=None, id=None, dts=None):
9
+ super().init(ns, id)
10
+ self.dts = dts
11
+ def bind(self, dts):
12
+ if self.dts==dts:
13
+ return
14
+ self.dts = dts
15
+ dts.add(self)
16
+ def set(self, key, val, tag=None):
17
+ tag = pyz.nnull(tag, self.default)
18
+ super().set(key, val, tag)
19
+ if self.dts is not None and tag in (TagData.Key.Pub, TagData.Key.Ns):
20
+ self.dts.set(key, val, self.ns, tag, self)
21
+ def tget(self, key, src=None,id=None, gfind=True):
22
+ ns, id = self.nsid(src, id)
23
+ obj, tag, find=super().tget(key, ns, id)
24
+ if not find and gfind:
25
+ obj, tag, find = self.dts.tget(key, ns, id)
26
+ return obj, tag, find
@@ -0,0 +1,76 @@
1
+ #
2
+
3
+ from .tdata import TagData
4
+ from .base import *
5
+ from ... import dz
6
+ class Dataset(Base):
7
+ '''
8
+ 所有数据集,只包含pub和ns部分
9
+ '''
10
+ def init(self, ids):
11
+ self.ids = ids
12
+ self.pub = {}
13
+ self.ns = {}
14
+ self.objs = {}
15
+ def set(self, key, val, ns=None, tag=None, id=None):
16
+ if tag == TagData.Key.Ns:
17
+ self.ns_set(key,val,ns,id)
18
+ else:
19
+ self.pub_set(key,val,ns,id)
20
+ def pub_set(self, key, val, ns=None, id=None):
21
+ if isinstance(id, TagData):
22
+ id = id.id
23
+ val = (val,id)
24
+ keys = self.ids(ns)+self.ids(key)
25
+ dz.dset(self.pub, keys, val)
26
+ def ns_set(self, key, val, ns=None, id=None):
27
+ if isinstance(id, TagData):
28
+ id = id.id
29
+ val = (val,id)
30
+ map = dz.get_set(self.ns, ns, dict())
31
+ map[key] = val
32
+ def add(self, data):
33
+ ns = data.ns
34
+ self.objs[data.id] = data
35
+ for key, val in data.tag(data.Key.Pub).items():
36
+ self.pub_set(key, val, ns, data)
37
+ for key, val in data.tag(data.Key.Ns).items():
38
+ self.ns_set(key, val, ns, data)
39
+ if data.dts!=self:
40
+ data.bind(self)
41
+ def tget(self, key, ns=None, id=None):
42
+ obj, id, keys,tag, find = self.get(key,ns,id)
43
+ return obj, tag, find
44
+ def get(self, key, ns=None, id = None):
45
+ obj, oid, find = self.ns_get(key,ns,id)
46
+ tag = TagData.Key.Ns
47
+ keys = key
48
+ if not find:
49
+ obj, oid, keys, find=self.pub_get(key,ns,id)
50
+ tag=TagData.Key.Pub
51
+ return obj,oid,keys,tag,find
52
+ def _pub_get(self, key, ns=None, id=None):
53
+ ids_key = self.ids(key)
54
+ ids = ids_key
55
+ obj,find = dz.dget(self.pub, ids)
56
+ if find:
57
+ return obj, ids, find
58
+ if ns is None:
59
+ return 0,0, 0
60
+ ids = self.ids(ns) + ids_key
61
+ obj,find = dz.dget(self.pub, ids)
62
+ if find:
63
+ return obj, ids, find
64
+ return 0,0,0
65
+ def pub_get(self, key, ns=None, id=None):
66
+ obj,keys,find = self._pub_get(key, ns, id)
67
+ if find:
68
+ v,id=obj
69
+ return v,id,keys,find
70
+ return 0,0,0,0
71
+ def ns_get(self, key, ns=None, id=None):
72
+ map = dz.get_set(self.ns, ns, dict())
73
+ if key not in map:
74
+ return 0, 0, 0
75
+ v,id=map[key]
76
+ return v,id, 1
@@ -0,0 +1,106 @@
1
+ #
2
+ from .datas import Datas
3
+ from .dataset import Dataset
4
+ from .confs import Confs
5
+ class Encapes(Datas):
6
+ def init(self, ns=None, id=None, dts=None, unit=None):
7
+ super().init(ns, id, dts)
8
+ self.confs = None
9
+ self.deals = None
10
+ self.deal_key = None
11
+ self.unit = unit
12
+ self.build()
13
+ def build(self):
14
+ if self.unit is None or self.confs is not None:
15
+ return
16
+ self.confs = self.unit.confs
17
+ self.deals = self.unit.deals
18
+ self.deal_key = self.unit.deal_key
19
+ def make(self, key, ns=None, id=None):
20
+ if self.confs is None or self.deals is None or self.deal_key is None:
21
+ return 0,0,0
22
+ conf, ctag, cfind = self.confs.tget(key, ns, id, False)
23
+ if not cfind:
24
+ return 0,0,0
25
+ conf, deal_ns = conf
26
+ encape, conf, upd = self.make_conf(conf, deal_ns, id)
27
+ if upd:
28
+ self.confs.set(key, conf, ctag)
29
+ self.set(key, encape, ctag)
30
+ return encape, ctag, 1
31
+ def make_conf(self, conf, deal_ns=None, id=None):
32
+ deal_key, dk_find = self.deal_key(conf)
33
+ deal, dtag, dfind = self.deals.tget(deal_key, deal_ns, id, True)
34
+ assert dfind
35
+ encape, conf, upd = deal(conf, self.unit)
36
+ return encape, conf, upd
37
+ def tget(self, key, src=None,id=None, gfind=True):
38
+ if Confs.is_conf(key):
39
+ encape, conf, upd = self.make_conf(key, self.deals.ns, id)
40
+ return encape, Datas.Key.Pub, 1
41
+ ns, id = self.nsid(src, id)
42
+ obj, tag, find=super().tget(key, ns, id, False)
43
+ if find:
44
+ return obj, tag, find
45
+ obj, tag, find = self.make(key, ns, id)
46
+ if find:
47
+ return obj, tag, find
48
+ if not gfind:
49
+ return 0,0,0
50
+ return self.dts.tget(key, ns, id)
51
+ class Encapeset(Dataset):
52
+ '''
53
+ 生成对象前的中间层
54
+ '''
55
+ def init(self, ids, mg=None):
56
+ super().init(ids)
57
+ self.confs = None
58
+ self.deals = None
59
+ self.deal_key = None
60
+ self.mg = None
61
+ self.bind(mg)
62
+ def bind(self, mg):
63
+ if self.mg==mg:
64
+ return self
65
+ self.mg = mg
66
+ self.confs = mg.confs
67
+ self.deals = mg.deals
68
+ self.deal_key = mg.deal_key
69
+ return self
70
+ def make(self, key, ns=None, id = None):
71
+ conf, cid, keys, ctag, cfind = self.confs.get(key, ns, id)
72
+ if not cfind:
73
+ return 0,0,0,0,0
74
+ conf, deal_ns = conf
75
+ encape, conf, upd = self.make_conf(conf, deal_ns, id, cid)
76
+ if cid in self.objs:
77
+ obj = self.objs[id]
78
+ if ns != obj.ns:
79
+ ids_ns = self.ids(obj.ns)
80
+ keys_ns = keys[:len(ids_ns)]
81
+ assert ids_ns == keys_ns, f"{ids_ns}!={keys_ns}"
82
+ keys = keys[len(ids_ns):]
83
+ key = self.ids.id(keys)
84
+ self.objs[cid].set(key, encape, ctag)
85
+ if upd:
86
+ self.confs.objs[cid].set(key, conf, ctag)
87
+ else:
88
+ self.set(key, encape, ns, ctag)
89
+ return encape, cid, keys, ctag, 1
90
+ def make_conf(self, conf, deal_ns=None, id=None,cid=None):
91
+ deal_key, dk_find = self.deal_key(conf)
92
+ deal, dtag, dfind = self.deals.tget(deal_key, deal_ns, id)
93
+ assert dfind
94
+ unit = self.mg.get_unit(cid)
95
+ encape, conf, upd = deal(conf, unit)
96
+ return encape, conf, upd
97
+ def get(self, key, ns=None, id=None):
98
+ if Confs.is_conf(key):
99
+ encape, conf, upd = self.make_conf(key, None, id)
100
+ return encape, None, None, Datas.Key.Pub, 1
101
+ obj, eid, keys, tag, find = super().get(key, ns, id)
102
+ if find:
103
+ return obj, eid, keys, tag, find
104
+ return self.make(key, ns, id)
105
+
106
+
@@ -1,5 +1,5 @@
1
1
  from .base import Base, fcBase
2
- from buildz import xf,pyz
2
+ from ... import xf,pyz
3
3
  class EnvExp(Exception):
4
4
  def __init__(self, id):
5
5
  super().__init__(f"EnvExp id not found: '{id}'")
@@ -12,13 +12,12 @@ class Ids(Base):
12
12
  ids = ids[0]
13
13
  return self.spt.join(ids)
14
14
  def ids(self, id):
15
+ if id is None:
16
+ return []
15
17
  if type(id) in (list, tuple):
16
18
  return id
17
19
  return id.split(self.spt)
18
20
  def call(self, id):
19
21
  return self.ids(id)
20
- a = self.ids(a)
21
- b = self.ids(b)
22
- return self.id(a,b)
23
22
  pass
24
23
 
@@ -0,0 +1,4 @@
1
+ #
2
+ from .mg import Manager
3
+ from .unit import Unit
4
+ from .ids import Ids
@@ -0,0 +1,88 @@
1
+ #
2
+
3
+ from .base import *
4
+ from .encapes import Encapeset
5
+ from .dataset import Dataset
6
+ from ... import pyz,dz
7
+ from .ids import Ids
8
+ from .unit import Unit
9
+ from .builds import Buildset
10
+ class GetKey(Base):
11
+ def call(self, conf):
12
+ return None, 0
13
+ def fill(self, conf, key):
14
+ assert 0,'not callable'
15
+ class SimpleConfKey(Base):
16
+ def init(self, key):
17
+ self.key = key
18
+ def call(self, conf):
19
+ if self.key not in conf:
20
+ return None,0
21
+ return conf[self.key],1
22
+ def fill(self, conf, key):
23
+ conf[self.key] = key
24
+
25
+ pass
26
+ class Manager(Base):
27
+ @staticmethod
28
+ def make_key(key):
29
+ if type(key) == str:
30
+ key = SimpleConfKey(key)
31
+ return key
32
+ @staticmethod
33
+ def make_ids(ids):
34
+ if type(ids)==str:
35
+ ids = Ids(ids)
36
+ return ids
37
+ def init(self, ids, deal_key='type', conf_key='id', deal_ids = None):
38
+ self._index = 0
39
+ self.units = {}
40
+ self.builds = Buildset(self)
41
+ ids = self.make_ids(ids)
42
+ self.ids = ids
43
+ self.deal_key = self.make_key(deal_key)
44
+ self.conf_key = self.make_key(conf_key)
45
+ self.deal_ids = pyz.nnull(deal_ids, ids)
46
+ self.confs = Dataset(self.ids)
47
+ self.deals = Dataset(self.deal_ids)
48
+ self.encapes = Encapeset(self.ids, self)
49
+ self.default_unit = self.create()
50
+ def add_build(self, conf):
51
+ self.builds.add(conf)
52
+ def build(self):
53
+ self.builds.build()
54
+ def add(self, unit):
55
+ unit.bind(self)
56
+ self.units[unit.id] = unit
57
+ def create(self, ns=None, deal_ns = None, deal_key=None, conf_key= None):
58
+ id = self.id()
59
+ deal_key = pyz.nnull(deal_key, self.deal_key)
60
+ conf_key = pyz.nnull(conf_key, self.conf_key)
61
+ deal_key = self.make_key(deal_key)
62
+ conf_key = self.make_key(conf_key)
63
+ unit = Unit(ns, deal_ns, deal_key, conf_key, id)
64
+ unit.bind(self)
65
+ return unit
66
+ def get_unit(self, id):
67
+ if id not in self.units:
68
+ return self.default_unit
69
+ return self.units[id]
70
+ def id(self):
71
+ index = self._index
72
+ self._index+=1
73
+ return index
74
+ def get_deal(self, key, ns=None, id=None):
75
+ return self.deals.tget(key, ns, id)
76
+ def set_deal(self, key, deal, ns=None, tag=None, id=None):
77
+ self.deals.set(key, deal, ns, tag, id)
78
+ def get_conf(self, key, ns=None, id=None):
79
+ return self.confs.tget(key, ns, id)
80
+ def set_conf(self, key, conf, ns=None, tag=None, id=None):
81
+ self.confs.set(key, conf, ns, tag, id)
82
+ def get_encape(self, key, ns=None, id=None):
83
+ self.build()
84
+ return self.encapes.tget(key, ns, id)
85
+ def set_encape(self, key, encape, ns=None, tag=None, id=None):
86
+ self.encapes.set(key, encape, ns, tag, id)
87
+
88
+ pass
@@ -0,0 +1,56 @@
1
+ #
2
+ from ... import pyz,dz,Base
3
+
4
+ class Key:
5
+ default_param_key = 'single_id'
6
+ i_multi = 0
7
+ i_single = 1
8
+ i_param = 2
9
+ multi='multi'
10
+ single='single'
11
+ param='param'
12
+ str2int = {
13
+ multi:i_multi,
14
+ single: i_single,
15
+ param: i_param
16
+ }
17
+ @staticmethod
18
+ def s2i(key=None):
19
+ if key is None:
20
+ key = Key.i_single
21
+ if key in Key.str2int:
22
+ key = Key.str2int[key]
23
+ return key
24
+ class Single(Base):
25
+ Key = Key
26
+ def init(self, single=None, param_key = None):
27
+ if param_key is None:
28
+ param_key = Key.default_param_key
29
+ self.single = Key.s2i(single)
30
+ self.objs = {}
31
+ self.param_key = param_key
32
+ def get_key(self, params):
33
+ if self.single == Key.i_multi:
34
+ return 0,0
35
+ elif self.single == Key.i_single:
36
+ key = None
37
+ elif self.single == Key.i_param:
38
+ if params is None:
39
+ key = None
40
+ else:
41
+ key = params.get(self.param_key)
42
+ else:
43
+ assert 0
44
+ return key,1
45
+ def set(self, params, obj):
46
+ key, find = self.get_key(params)
47
+ if not find:
48
+ return
49
+ self.objs[key] = obj
50
+ def get(self, params):
51
+ key, find = self.get_key(params)
52
+ if not find:
53
+ return 0,0
54
+ if key not in self.objs:
55
+ return 0,0
56
+ return self.objs[key],1