buildz 0.6.47__tar.gz → 0.6.48__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 (303) hide show
  1. {buildz-0.6.47/buildz.egg-info → buildz-0.6.48}/PKG-INFO +1 -1
  2. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/caps.py +77 -8
  3. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/mhttp.py +7 -5
  4. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/proxy.py +1 -1
  5. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/sslz/gen.py +1 -1
  6. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/test/test.py +24 -23
  7. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/test/test_cli.py +9 -4
  8. {buildz-0.6.47 → buildz-0.6.48/buildz.egg-info}/PKG-INFO +1 -1
  9. {buildz-0.6.47 → buildz-0.6.48}/setup.py +1 -1
  10. {buildz-0.6.47 → buildz-0.6.48}/LICENSE +0 -0
  11. {buildz-0.6.47 → buildz-0.6.48}/MANIFEST.in +0 -0
  12. {buildz-0.6.47 → buildz-0.6.48}/README.md +0 -0
  13. {buildz-0.6.47 → buildz-0.6.48}/buildz/__init__.py +0 -0
  14. {buildz-0.6.47 → buildz-0.6.48}/buildz/__main__.py +0 -0
  15. {buildz-0.6.47 → buildz-0.6.48}/buildz/argx.py +0 -0
  16. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/__init__.py +0 -0
  17. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/argz.py +0 -0
  18. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/build.py +0 -0
  19. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/callz.py +0 -0
  20. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/evalx.py +0 -0
  21. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/test.py +0 -0
  22. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/test_obj.py +0 -0
  23. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/tests/conf.js +0 -0
  24. {buildz-0.6.47 → buildz-0.6.48}/buildz/argz/testx.py +0 -0
  25. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/__init__.py +0 -0
  26. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/cache.py +0 -0
  27. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/config.py +0 -0
  28. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/dbs.py +0 -0
  29. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/deal.py +0 -0
  30. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/deal_list.py +0 -0
  31. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/deal_type.py +0 -0
  32. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/defs.py +0 -0
  33. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/factory.py +0 -0
  34. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/init.py +0 -0
  35. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/log.py +0 -0
  36. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/request.py +0 -0
  37. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/run.py +0 -0
  38. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/save.py +0 -0
  39. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/cache/cache.js +0 -0
  40. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/config/base.js +0 -0
  41. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/config/config.js +0 -0
  42. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/fp.js +0 -0
  43. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/item1.js +0 -0
  44. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/item2.js +0 -0
  45. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/res/data/test.js +0 -0
  46. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/test.py +0 -0
  47. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/test/xtest.py +0 -0
  48. {buildz-0.6.47 → buildz-0.6.48}/buildz/auto/verify.py +0 -0
  49. {buildz-0.6.47 → buildz-0.6.48}/buildz/base.py +0 -0
  50. {buildz-0.6.47 → buildz-0.6.48}/buildz/cachez/__init__.py +0 -0
  51. {buildz-0.6.47 → buildz-0.6.48}/buildz/cachez/cache.py +0 -0
  52. {buildz-0.6.47 → buildz-0.6.48}/buildz/cmd.py +0 -0
  53. {buildz-0.6.47 → buildz-0.6.48}/buildz/confz.py +0 -0
  54. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/__init__.py +0 -0
  55. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/__main__.py +0 -0
  56. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/__init__.py +0 -0
  57. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/basez.py +0 -0
  58. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/clickhousez.py +0 -0
  59. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/lib/readme +0 -0
  60. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/mysqlz.py +0 -0
  61. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/oraclez.py +0 -0
  62. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/orm.py +0 -0
  63. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/postgresqlz.py +0 -0
  64. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/sqlite3z.py +0 -0
  65. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/dv/structz.py +0 -0
  66. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/install.txt +0 -0
  67. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/run.conf +0 -0
  68. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/runz.py +0 -0
  69. {buildz-0.6.47 → buildz-0.6.48}/buildz/db/tls.py +0 -0
  70. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/ioc/deal.py +0 -0
  71. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/ioc/help.py +0 -0
  72. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/myers/deal.py +0 -0
  73. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/myers/help.py +0 -0
  74. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/ioc.js +0 -0
  75. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/main.js +0 -0
  76. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/myers.js +0 -0
  77. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/search.js +0 -0
  78. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/conf/xf.js +0 -0
  79. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/default.js +0 -0
  80. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/ioc.js +0 -0
  81. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/myers.js +0 -0
  82. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/search.js +0 -0
  83. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/help/xf.js +0 -0
  84. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/res/test.js +0 -0
  85. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/search/deal.py +0 -0
  86. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/search/help.py +0 -0
  87. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/test.py +0 -0
  88. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/xf/deal.py +0 -0
  89. {buildz-0.6.47 → buildz-0.6.48}/buildz/demo/xf/help.py +0 -0
  90. {buildz-0.6.47 → buildz-0.6.48}/buildz/dz/__init__.py +0 -0
  91. {buildz-0.6.47 → buildz-0.6.48}/buildz/dz/mapz.py +0 -0
  92. {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/__init__.py +0 -0
  93. {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/evalz.py +0 -0
  94. {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/res/default.js +0 -0
  95. {buildz-0.6.47 → buildz-0.6.48}/buildz/evalz/test.py +0 -0
  96. {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/__init__.py +0 -0
  97. {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/dirz.py +0 -0
  98. {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/fhs.py +0 -0
  99. {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/fio.py +0 -0
  100. {buildz-0.6.47 → buildz-0.6.48}/buildz/fz/lsf.py +0 -0
  101. {buildz-0.6.47 → buildz-0.6.48}/buildz/html/__init__.py +0 -0
  102. {buildz-0.6.47 → buildz-0.6.48}/buildz/html/test/demo.html +0 -0
  103. {buildz-0.6.47 → buildz-0.6.48}/buildz/html/test/test.py +0 -0
  104. {buildz-0.6.47 → buildz-0.6.48}/buildz/html/xml.py +0 -0
  105. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/__init__.py +0 -0
  106. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/base.py +0 -0
  107. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/init.py +0 -0
  108. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/base.py +0 -0
  109. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/conf.py +0 -0
  110. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/confs.py +0 -0
  111. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/decorator.py +0 -0
  112. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/loads.py +0 -0
  113. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc/single.py +0 -0
  114. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/base.py +0 -0
  115. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/branch.py +0 -0
  116. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/call.py +0 -0
  117. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/calls.py +0 -0
  118. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
  119. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  120. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  121. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  122. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  123. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  124. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  125. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  126. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  127. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  128. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  129. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  130. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  131. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  132. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  133. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  134. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  135. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  136. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  137. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  138. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  139. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
  140. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  141. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  142. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  143. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/deal.py +0 -0
  144. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/demo.py +0 -0
  145. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/env.py +0 -0
  146. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/init.py +0 -0
  147. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/ioc.py +0 -0
  148. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/iocf.py +0 -0
  149. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/join.py +0 -0
  150. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/list.py +0 -0
  151. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/map.py +0 -0
  152. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/mcall.py +0 -0
  153. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/obj.py +0 -0
  154. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/ovar.py +0 -0
  155. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/ref.py +0 -0
  156. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/refs.py +0 -0
  157. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/val.py +0 -0
  158. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/var.py +0 -0
  159. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/ioc_deal/xfile.py +0 -0
  160. {buildz-0.6.47 → buildz-0.6.48}/buildz/ioc/wrap.py +0 -0
  161. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/base.py +0 -0
  162. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/base.py +0 -0
  163. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/bind.py +0 -0
  164. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/confs.py +0 -0
  165. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/datas.py +0 -0
  166. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/dataset.py +0 -0
  167. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/deals.py +0 -0
  168. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/dm.py +0 -0
  169. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/encapes.py +0 -0
  170. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/env.py +0 -0
  171. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/envm.py +0 -0
  172. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/ids.py +0 -0
  173. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/tdata.py +0 -0
  174. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/tdict.py +0 -0
  175. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc/unit.py +0 -0
  176. {buildz-0.6.47 → buildz-0.6.48}/buildz/iocz/ioc_deal/obj.py +0 -0
  177. {buildz-0.6.47 → buildz-0.6.48}/buildz/logz.py +0 -0
  178. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/__init__.py +0 -0
  179. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/__init__.py +0 -0
  180. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/mhttp/record.py +0 -0
  181. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/sslz/__init__.py +0 -0
  182. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/sslz/gen.pyi +0 -0
  183. {buildz-0.6.47 → buildz-0.6.48}/buildz/netz/test/__main__.py +0 -0
  184. {buildz-0.6.47 → buildz-0.6.48}/buildz/pathz.py +0 -0
  185. {buildz-0.6.47 → buildz-0.6.48}/buildz/pyz.py +0 -0
  186. {buildz-0.6.47 → buildz-0.6.48}/buildz/tools.py +0 -0
  187. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/__init__.py +0 -0
  188. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/myers_diff.py +0 -0
  189. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/test_xfind.py +0 -0
  190. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/time/__init__.py +0 -0
  191. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/time/timez.py +0 -0
  192. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/__init__.py +0 -0
  193. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/base.py +0 -0
  194. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/getch.py +0 -0
  195. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/lx.py +0 -0
  196. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/test.py +0 -0
  197. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/tio/win.py +0 -0
  198. {buildz-0.6.47 → buildz-0.6.48}/buildz/tz/xfind.py +0 -0
  199. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/__init__.py +0 -0
  200. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/__main__.py +0 -0
  201. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/base.py +0 -0
  202. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/code.py +0 -0
  203. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/code_modify.py +0 -0
  204. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/copy_old.py +0 -0
  205. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/file.py +0 -0
  206. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/base.py +0 -0
  207. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/buffer.py +0 -0
  208. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/listz.py +0 -0
  209. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/lr.py +0 -0
  210. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/lrval.py +0 -0
  211. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/mapz.py +0 -0
  212. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/nextz.py +0 -0
  213. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/reval.py +0 -0
  214. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/setz.py +0 -0
  215. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/spc.py +0 -0
  216. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/spt.py +0 -0
  217. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/deal/strz.py +0 -0
  218. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/exp.py +0 -0
  219. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/item.py +0 -0
  220. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/mg.py +0 -0
  221. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loader/pos.py +0 -0
  222. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/base.py +0 -0
  223. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/buffer.py +0 -0
  224. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/listmapz.py +0 -0
  225. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/listz.py +0 -0
  226. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/lr.py +0 -0
  227. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/lrval.py +0 -0
  228. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/mapz.py +0 -0
  229. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/nextz.py +0 -0
  230. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/reval.py +0 -0
  231. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/setz.py +0 -0
  232. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/spc.py +0 -0
  233. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/spt.py +0 -0
  234. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/strz.py +0 -0
  235. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/strz_new.py +0 -0
  236. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/deal/strz_old.py +0 -0
  237. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/exp.py +0 -0
  238. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/item.py +0 -0
  239. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/mg.py +0 -0
  240. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/pos.py +0 -0
  241. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/test.py +0 -0
  242. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz/test1.py +0 -0
  243. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/base.py +0 -0
  244. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/buffer.py +0 -0
  245. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/listmapz.py +0 -0
  246. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/listz.py +0 -0
  247. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/lr.py +0 -0
  248. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/lrval.py +0 -0
  249. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/mapz.py +0 -0
  250. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/nextz.py +0 -0
  251. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/reval.py +0 -0
  252. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/setz.py +0 -0
  253. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/spc.py +0 -0
  254. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/spt.py +0 -0
  255. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/strz.py +0 -0
  256. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/strz_new.py +0 -0
  257. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/deal/strz_old.py +0 -0
  258. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/exp.py +0 -0
  259. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/item.py +0 -0
  260. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/mg.py +0 -0
  261. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/pos.py +0 -0
  262. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/test.py +0 -0
  263. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/loaderz_nexp/test1.py +0 -0
  264. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/mapz.py +0 -0
  265. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/read.py +0 -0
  266. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/readz.py +0 -0
  267. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/readz_nexp.py +0 -0
  268. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/stack.py +0 -0
  269. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/write.py +0 -0
  270. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/base.py +0 -0
  271. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/conf.py +0 -0
  272. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/jsonval.py +0 -0
  273. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/listmapz.py +0 -0
  274. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/listz.py +0 -0
  275. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/mapz.py +0 -0
  276. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/reval.py +0 -0
  277. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/deal/strz.py +0 -0
  278. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/itemz.py +0 -0
  279. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writer/mg.py +0 -0
  280. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/base.py +0 -0
  281. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/conf.py +0 -0
  282. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/jsonval.py +0 -0
  283. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/listmapz.py +0 -0
  284. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/listz.py +0 -0
  285. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/mapz.py +0 -0
  286. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/reval.py +0 -0
  287. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/deal/strz.py +0 -0
  288. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/itemz.py +0 -0
  289. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/mg.py +0 -0
  290. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/test.py +0 -0
  291. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writerz/testx.py +0 -0
  292. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/writez.py +0 -0
  293. {buildz-0.6.47 → buildz-0.6.48}/buildz/xf/xargs.py +0 -0
  294. {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/__init__.py +0 -0
  295. {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/conf.js +0 -0
  296. {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/data.js +0 -0
  297. {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/test.py +0 -0
  298. {buildz-0.6.47 → buildz-0.6.48}/buildz/xz/trs.py +0 -0
  299. {buildz-0.6.47 → buildz-0.6.48}/buildz.egg-info/SOURCES.txt +0 -0
  300. {buildz-0.6.47 → buildz-0.6.48}/buildz.egg-info/dependency_links.txt +0 -0
  301. {buildz-0.6.47 → buildz-0.6.48}/buildz.egg-info/top_level.txt +0 -0
  302. {buildz-0.6.47 → buildz-0.6.48}/notes/notes.txt +0 -0
  303. {buildz-0.6.47 → buildz-0.6.48}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.47
3
+ Version: 0.6.48
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
@@ -2,21 +2,86 @@
2
2
  from . import proxy,mhttp
3
3
  import socket, threading
4
4
  log = mhttp.log
5
+ from buildz import xf
5
6
  import ssl
7
+ from os.path import join, isfile
6
8
  import traceback
9
+ from buildz import fz
10
+
11
+ cert_conf = xf.loads(r"""
12
+ // 国家
13
+ country: CN
14
+ // 省份
15
+ provice: fujian
16
+ // 城镇
17
+ local: quanzhou
18
+ // 机构
19
+ org: testz
20
+ // 域名
21
+ comman: testz
22
+ // 邮箱
23
+ email: netz@testz
24
+ // 是否是ca
25
+ ca: true
26
+ //dns: [localhost]
27
+ // 签名有效提前时间(签名多少天前就有效)
28
+ valid_before: 1
29
+ // 签名有效时间(签名后有效多少天)
30
+ valid: 3650
31
+ dns: []
32
+ """)
33
+ sign_conf = xf.loads(r"""
34
+ // 签名有效提前时间(签名多少天前就有效)
35
+ valid_before: 1
36
+ // 签名有效时间(签名后有效多少天)
37
+ valid: 3650
38
+ """)
7
39
  class CapsDealer(proxy.ProxyDealer):
8
40
  """
9
41
  http和https抓包,要自己实现MsgRecord类处理抓包数据,否则默认只是打印抓包的url和头部数据等信息
10
42
  buildz.netz.mhttp.record.MsgRecord的实现可参考buildz.netz.mhttp.record.MsgLog
11
43
  """
12
- def init(self, skt, context, srv_context, channel_read_size=1024000, record=None):
44
+ def init(self, skt, ca, srv_context, channel_read_size=1024000, record=None,dp_cache=None):
45
+ if dp_cache is None:
46
+ dp_cache = "./res/certs"
13
47
  super().init(skt, channel_read_size, record=record)
14
- self.context = context
48
+ self.ca = ca
15
49
  self.srv_context = srv_context
50
+ self.contexts = {}
51
+ self.dp_cache = dp_cache
52
+ def sign(self, hostname):
53
+ dp = join(self.dp_cache, "_"+hostname)
54
+ fz.makedir(dp)
55
+ fp_csr = join(dp, "csr")
56
+ fp_cert = join(dp, "cert")
57
+ fp_prv = join(dp, "prv")
58
+ if isfile(fp_cert):
59
+ return fp_cert, fp_prv, None
60
+ try:
61
+ from buildz.netz import sslz
62
+ except:
63
+ # 不能创建域名证书,则直接用根证书
64
+ return self.ca
65
+ conf = dict(cert_conf)
66
+ conf['comman']=hostname
67
+ conf['dns'] = [hostname]
68
+ sslz.gen_prv(fp_prv)
69
+ sslz.gen_csr(fp_csr, fp_prv, conf, None)
70
+ sslz.sign_csr(fp_cert, fp_csr, self.ca[0], self.ca[1],sign_conf, self.ca[2])
71
+ return fp_cert, fp_prv, None
72
+ def context(self, hostname):
73
+ if hostname not in self.contexts:
74
+ fp_cert, fp_prv, pwd = self.sign(hostname)
75
+ context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
76
+ context.load_cert_chain(fp_cert, fp_prv, password=pwd)
77
+ self.contexts[hostname]=context
78
+ return self.contexts[hostname]
16
79
  def deal_channel(self, skt_cli, skt_srv):
17
80
  #self.wskt.closefile()
18
81
  #wskt.closefile()
19
- skt_cli = mhttp.WSocket.Bind(self.context.wrap_socket(skt_cli.skt, server_side=True))
82
+ hostname = skt_srv.addr[0]
83
+ context = self.context(hostname)
84
+ skt_cli = mhttp.WSocket.Bind(context.wrap_socket(skt_cli.skt, server_side=True))
20
85
  #context = ssl._create_unverified_context(ssl.PROTOCOL_TLS_CLIENT)
21
86
  skt_srv = mhttp.WSocket.Bind(self.srv_context.wrap_socket(skt_srv.skt, server_side=False))
22
87
  self.record.set_ssl(True)
@@ -40,10 +105,11 @@ class CapsProxy(proxy.Proxy):
40
105
  http和https抓包,要自己实现MsgRecord类处理抓包数据,否则默认只是打印抓包的url和头部数据等信息
41
106
  buildz.netz.mhttp.record.MsgRecord的实现可参考buildz.netz.mhttp.record.MsgLog
42
107
  """
43
- def init(self, addr, fp_sign, fp_prv, password = None,listen=5, record=None,cafile=None, capath=None, cadata=None,check_hostname=True):
108
+ def init(self, addr, fp_sign, fp_prv, password = None,listen=5, record=None,cafile=None, capath=None, cadata=None,check_hostname=True, dp_cache = None):
44
109
  super().init(addr, listen, record)
45
- context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
46
- context.load_cert_chain(fp_sign, fp_prv, password=password)
110
+ # context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
111
+ # context.load_cert_chain(fp_sign, fp_prv, password=password)
112
+ self.ca = fp_sign, fp_prv, password
47
113
  if cafile is not None or capath is not None or cadata is not None:
48
114
  # 导入根证书,需要单个根证书文件cafile或者根证书文件夹capath或者根证书数据cadata
49
115
  # cadata是证书数据,不清楚能不能多个证书字节码拼在一起
@@ -53,8 +119,11 @@ class CapsProxy(proxy.Proxy):
53
119
  else:
54
120
  # 不会校验服务端https证书是否有效,可能有风险?
55
121
  srv_context = ssl._create_unverified_context(ssl.PROTOCOL_TLS_CLIENT)
56
- self.context = context
122
+ #self.context = context
57
123
  self.srv_context = srv_context
124
+ if dp_cache is None:
125
+ dp_cache = "./res/certs"
126
+ self.dp_cache = dp_cache
58
127
  def call(self):
59
128
  self.running=True
60
129
  skt = socket.socket()
@@ -63,7 +132,7 @@ class CapsProxy(proxy.Proxy):
63
132
  self.skt = skt
64
133
  while self.running:
65
134
  skt,addr = self.skt.accept()
66
- deal = CapsDealer(skt, self.context, self.srv_context, record=self.record.clone())
135
+ deal = CapsDealer(skt, self.ca, self.srv_context, record=self.record.clone(), dp_cache = self.dp_cache)
67
136
  th = threading.Thread(target=deal,daemon=True)
68
137
  th.start()
69
138
  self.ths.append(th)
@@ -120,9 +120,9 @@ class WSocket(Base):
120
120
  skt.connect(addr)
121
121
  return skt
122
122
  @staticmethod
123
- def Bind(skt, buffer_size=-1):
123
+ def Bind(skt, buffer_size=-1, addr=None):
124
124
  wskt = WSocket(buffer_size)
125
- wskt.bind(skt)
125
+ wskt.bind(skt, addr)
126
126
  return wskt
127
127
  def init(self, buffer_size=-1):
128
128
  self.buffer_size = buffer_size
@@ -130,8 +130,10 @@ class WSocket(Base):
130
130
  if w_buffer_size<0:
131
131
  w_buffer_size=0
132
132
  self.w_buffer_size = w_buffer_size
133
- def bind(self, skt):
134
- self.addr = skt.getpeername()
133
+ def bind(self, skt, addr=None):
134
+ if addr is None:
135
+ addr = skt.getpeername()
136
+ self.addr = addr
135
137
  rfile = skt.makefile('rb', self.buffer_size)
136
138
  wfile = skt.makefile('wb', self.w_buffer_size)
137
139
  self.skt = skt
@@ -148,7 +150,7 @@ class WSocket(Base):
148
150
  skt = socket.socket()
149
151
  log.debug(f"connect: {addr}")
150
152
  skt.connect(tuple(addr))
151
- self.bind(skt)
153
+ self.bind(skt, addr)
152
154
  def closefile(self):
153
155
  try:
154
156
  self.rfile.close()
@@ -132,7 +132,7 @@ class ProxyDealer(Base):
132
132
  break
133
133
  finally:
134
134
  self.wskt.close()
135
- self.monitor.close()
135
+ #self.monitor.close()
136
136
 
137
137
  pass
138
138
 
@@ -287,7 +287,7 @@ def loadf_certs(fp):
287
287
  def load_certs(bs):
288
288
  spt = b"-----END CERTIFICATE-----"
289
289
  pems = bs.split(spt)
290
- pems = [k.strip()+spt for k in pems if k.strip()!=b""]
290
+ pems = [k+spt for k in pems if k.strip()!=b""]
291
291
  certs = [x509.load_pem_x509_certificate(pem) for pem in pems]
292
292
  return certs
293
293
  def verify_certs_fp(fp, cas = None, verify_time=True):
@@ -14,6 +14,30 @@ path.set("res", "./res")
14
14
  fp_prv = path.res("ca.prv")
15
15
  fp_cert = path.res("ca.crt")
16
16
  ca_pwd = "test"
17
+
18
+
19
+ ca_conf = xf.loads(r"""
20
+ // 国家
21
+ country: CN
22
+ // 省份
23
+ provice: fujian
24
+ // 城镇
25
+ local: quanzhou
26
+ // 机构
27
+ org: buildz
28
+ // 域名
29
+ comman: buildz
30
+ // 邮箱
31
+ email: netz@buildz
32
+ // 是否是ca
33
+ ca: true
34
+ //dns: [localhost]
35
+ // 签名有效提前时间(签名多少天前就有效)
36
+ valid_before: 1
37
+ // 签名有效时间(签名后有效多少天)
38
+ valid: 3650
39
+ ca:true
40
+ """)
17
41
  log = logz.simple(path.res("caps/%Y%m%d.log"))
18
42
  fz.makedir(path.res())
19
43
  def gen_cert():
@@ -44,26 +68,3 @@ def caps():
44
68
  #pyz.lc(locals(), caps)
45
69
 
46
70
 
47
-
48
-
49
- ca_conf = xf.loads(r"""
50
- // 国家
51
- country: CN
52
- // 省份
53
- provice: fujian
54
- // 城镇
55
- local: quanzhou
56
- // 机构
57
- org: buildz
58
- // 域名
59
- comman: buildz
60
- // 邮箱
61
- email: netz@buildz
62
- // 是否是ca
63
- ca: true
64
- //dns: [localhost]
65
- // 签名有效提前时间(签名多少天前就有效)
66
- valid_before: 1
67
- // 签名有效时间(签名后有效多少天)
68
- valid: 3650
69
- """)
@@ -5,6 +5,11 @@ except:
5
5
  print("need package requests: pip install requests")
6
6
  raise
7
7
  session = rq.session()
8
+ from buildz import pathz
9
+
10
+ path = pathz.Path()
11
+ path.set("res", "./res")
12
+ fp_cert = path.res("ca.crt")
8
13
  import sys
9
14
  ip = "127.0.0.1"
10
15
  port=9999
@@ -19,12 +24,12 @@ proxies = {
19
24
  }
20
25
 
21
26
  url = "https://www.baidu.com"
22
- verify=False
23
- rp = rq.get(url, proxies = proxies,verify=verify)
27
+ verify=fp_cert
28
+ rp = session.get(url, proxies = proxies,verify=verify)
24
29
  print(rp,len(rp.content))
25
30
 
26
31
  url = "http://www.baidu.com"
27
- rp = rq.get(url, proxies = proxies,verify=verify)
32
+ rp = session.get(url, proxies = proxies,verify=verify)
28
33
  print(rp,len(rp.content))
29
34
 
30
35
  url = "https://www.bilibili.com/"
@@ -34,5 +39,5 @@ headers = {
34
39
  "Accept-Encoding":"gzip, deflate, br, zstd",
35
40
  "Accept-Language":"zh-CN,zh;q=0.9"
36
41
  }
37
- rp = rq.get(url, proxies = proxies,verify=verify,headers=headers)
42
+ rp = session.get(url, proxies = proxies,verify=verify,headers=headers)
38
43
  print(rp,len(rp.content))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.47
3
+ Version: 0.6.48
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
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.6.47',
10
+ version = '0.6.48',
11
11
  keywords='buildz',
12
12
  long_description=open('README.md', 'r', encoding="utf-8").read(),
13
13
  long_description_content_type='text/markdown',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes