buildz 0.6.13__tar.gz → 0.6.15__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 (196) hide show
  1. {buildz-0.6.13/buildz.egg-info → buildz-0.6.15}/PKG-INFO +2 -1
  2. {buildz-0.6.13 → buildz-0.6.15}/README.md +1 -0
  3. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/cache.py +37 -4
  4. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/config.py +2 -0
  5. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/deal_type.py +7 -3
  6. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/init.py +1 -1
  7. buildz-0.6.15/buildz/auto/request.py +131 -0
  8. buildz-0.6.15/buildz/auto/run.py +39 -0
  9. buildz-0.6.15/buildz/auto/test/cache/cache.js +16 -0
  10. {buildz-0.6.13/buildz/auto/test → buildz-0.6.15/buildz/auto/test/config}/config.js +4 -3
  11. buildz-0.6.15/buildz/auto/test/data/item2.js +15 -0
  12. {buildz-0.6.13/buildz/auto/test → buildz-0.6.15/buildz/auto/test/data}/test.js +2 -1
  13. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/test/test.py +2 -1
  14. {buildz-0.6.13 → buildz-0.6.15/buildz.egg-info}/PKG-INFO +2 -1
  15. {buildz-0.6.13 → buildz-0.6.15}/buildz.egg-info/SOURCES.txt +6 -4
  16. {buildz-0.6.13 → buildz-0.6.15}/setup.py +1 -1
  17. buildz-0.6.13/buildz/auto/run.py +0 -24
  18. buildz-0.6.13/buildz/auto/test/cache.js +0 -10
  19. {buildz-0.6.13 → buildz-0.6.15}/LICENSE +0 -0
  20. {buildz-0.6.13 → buildz-0.6.15}/MANIFEST.in +0 -0
  21. {buildz-0.6.13 → buildz-0.6.15}/buildz/__init__.py +0 -0
  22. {buildz-0.6.13 → buildz-0.6.15}/buildz/__main__.py +0 -0
  23. {buildz-0.6.13 → buildz-0.6.15}/buildz/argx.py +0 -0
  24. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/__init__.py +0 -0
  25. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/deal.py +0 -0
  26. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/factory.py +0 -0
  27. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/log.py +0 -0
  28. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/save.py +0 -0
  29. {buildz-0.6.13/buildz/auto/test → buildz-0.6.15/buildz/auto/test/data}/item1.js +0 -0
  30. {buildz-0.6.13 → buildz-0.6.15}/buildz/auto/verify.py +0 -0
  31. {buildz-0.6.13 → buildz-0.6.15}/buildz/base.py +0 -0
  32. {buildz-0.6.13 → buildz-0.6.15}/buildz/cmd.py +0 -0
  33. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/__main__.py +0 -0
  34. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/dv/basez.py +0 -0
  35. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/dv/clickhousez.py +0 -0
  36. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/dv/lib/readme +0 -0
  37. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/dv/mysqlz.py +0 -0
  38. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/dv/oraclez.py +0 -0
  39. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/dv/structz.py +0 -0
  40. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/install.txt +0 -0
  41. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/run.conf +0 -0
  42. {buildz-0.6.13 → buildz-0.6.15}/buildz/db/runz.py +0 -0
  43. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/ioc/deal.py +0 -0
  44. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/ioc/help.py +0 -0
  45. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/myers/deal.py +0 -0
  46. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/myers/help.py +0 -0
  47. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/conf/ioc.js +0 -0
  48. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/conf/main.js +0 -0
  49. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/conf/myers.js +0 -0
  50. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/conf/search.js +0 -0
  51. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/conf/xf.js +0 -0
  52. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/help/default.js +0 -0
  53. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/help/ioc.js +0 -0
  54. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/help/myers.js +0 -0
  55. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/help/search.js +0 -0
  56. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/help/xf.js +0 -0
  57. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/res/test.js +0 -0
  58. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/search/deal.py +0 -0
  59. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/search/help.py +0 -0
  60. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/test.py +0 -0
  61. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/xf/deal.py +0 -0
  62. {buildz-0.6.13 → buildz-0.6.15}/buildz/demo/xf/help.py +0 -0
  63. {buildz-0.6.13 → buildz-0.6.15}/buildz/fz/__init__.py +0 -0
  64. {buildz-0.6.13 → buildz-0.6.15}/buildz/fz/dirz.py +0 -0
  65. {buildz-0.6.13 → buildz-0.6.15}/buildz/fz/fhs.py +0 -0
  66. {buildz-0.6.13 → buildz-0.6.15}/buildz/fz/fio.py +0 -0
  67. {buildz-0.6.13 → buildz-0.6.15}/buildz/fz/lsf.py +0 -0
  68. {buildz-0.6.13 → buildz-0.6.15}/buildz/html/__init__.py +0 -0
  69. {buildz-0.6.13 → buildz-0.6.15}/buildz/html/test/test.py +0 -0
  70. {buildz-0.6.13 → buildz-0.6.15}/buildz/html/xml.py +0 -0
  71. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/__init__.py +0 -0
  72. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/base.py +0 -0
  73. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/init.py +0 -0
  74. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc/base.py +0 -0
  75. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc/conf.py +0 -0
  76. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc/confs.py +0 -0
  77. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc/decorator.py +0 -0
  78. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc/single.py +0 -0
  79. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/base.py +0 -0
  80. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/branch.py +0 -0
  81. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/call.py +0 -0
  82. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/calls.py +0 -0
  83. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/branch_lists.js +0 -0
  84. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  85. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  86. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  87. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  88. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  89. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  90. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  91. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  92. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  93. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  94. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  95. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  96. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  97. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  98. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  99. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  100. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  101. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  102. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  103. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  104. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/refs_lists.js +0 -0
  105. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  106. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  107. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  108. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/deal.py +0 -0
  109. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/demo.py +0 -0
  110. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/env.py +0 -0
  111. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/init.py +0 -0
  112. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/ioc.py +0 -0
  113. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/iocf.py +0 -0
  114. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/join.py +0 -0
  115. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/list.py +0 -0
  116. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/map.py +0 -0
  117. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/mcall.py +0 -0
  118. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/obj.py +0 -0
  119. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/ovar.py +0 -0
  120. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/ref.py +0 -0
  121. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/refs.py +0 -0
  122. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/val.py +0 -0
  123. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/var.py +0 -0
  124. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/ioc_deal/xfile.py +0 -0
  125. {buildz-0.6.13 → buildz-0.6.15}/buildz/ioc/wrap.py +0 -0
  126. {buildz-0.6.13 → buildz-0.6.15}/buildz/pyz.py +0 -0
  127. {buildz-0.6.13 → buildz-0.6.15}/buildz/tools.py +0 -0
  128. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/__init__.py +0 -0
  129. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/myers_diff.py +0 -0
  130. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/tio/__init__.py +0 -0
  131. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/tio/base.py +0 -0
  132. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/tio/getch.py +0 -0
  133. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/tio/lx.py +0 -0
  134. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/tio/test.py +0 -0
  135. {buildz-0.6.13 → buildz-0.6.15}/buildz/tz/tio/win.py +0 -0
  136. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/__init__.py +0 -0
  137. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/__main__.py +0 -0
  138. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/code.py +0 -0
  139. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/code_modify.py +0 -0
  140. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/copy_old.py +0 -0
  141. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/file.py +0 -0
  142. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/base.py +0 -0
  143. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/buffer.py +0 -0
  144. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/listz.py +0 -0
  145. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/lr.py +0 -0
  146. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/lrval.py +0 -0
  147. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/mapz.py +0 -0
  148. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/nextz.py +0 -0
  149. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/reval.py +0 -0
  150. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/setz.py +0 -0
  151. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/spc.py +0 -0
  152. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/spt.py +0 -0
  153. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/deal/strz.py +0 -0
  154. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/exp.py +0 -0
  155. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/item.py +0 -0
  156. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/mg.py +0 -0
  157. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loader/pos.py +0 -0
  158. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/base.py +0 -0
  159. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/buffer.py +0 -0
  160. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/listmapz.py +0 -0
  161. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/listz.py +0 -0
  162. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/lr.py +0 -0
  163. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/lrval.py +0 -0
  164. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/mapz.py +0 -0
  165. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/nextz.py +0 -0
  166. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/reval.py +0 -0
  167. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/setz.py +0 -0
  168. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/spc.py +0 -0
  169. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/spt.py +0 -0
  170. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/strz.py +0 -0
  171. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/strz_new.py +0 -0
  172. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/deal/strz_old.py +0 -0
  173. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/exp.py +0 -0
  174. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/item.py +0 -0
  175. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/mg.py +0 -0
  176. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/pos.py +0 -0
  177. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/test.py +0 -0
  178. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/loaderz/test1.py +0 -0
  179. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/mapz.py +0 -0
  180. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/read.py +0 -0
  181. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/readz.py +0 -0
  182. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/stack.py +0 -0
  183. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/write.py +0 -0
  184. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/base.py +0 -0
  185. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/conf.py +0 -0
  186. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/deal/jsonval.py +0 -0
  187. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/deal/listz.py +0 -0
  188. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/deal/mapz.py +0 -0
  189. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/deal/reval.py +0 -0
  190. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/deal/strz.py +0 -0
  191. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/itemz.py +0 -0
  192. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/writer/mg.py +0 -0
  193. {buildz-0.6.13 → buildz-0.6.15}/buildz/xf/xargs.py +0 -0
  194. {buildz-0.6.13 → buildz-0.6.15}/buildz.egg-info/dependency_links.txt +0 -0
  195. {buildz-0.6.13 → buildz-0.6.15}/buildz.egg-info/top_level.txt +0 -0
  196. {buildz-0.6.13 → buildz-0.6.15}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.13
3
+ Version: 0.6.15
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
@@ -33,6 +33,7 @@ License-File: LICENSE
33
33
  持续更新中。。。
34
34
  2024/09/25:
35
35
  修复bug,增强html的搜索功能,增强auto配置功能
36
+ auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
36
37
  2024/09/24:
37
38
  增加模块html:html页面解析
38
39
  增加模块auto:自动化调用
@@ -20,6 +20,7 @@
20
20
  持续更新中。。。
21
21
  2024/09/25:
22
22
  修复bug,增强html的搜索功能,增强auto配置功能
23
+ auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
23
24
  2024/09/24:
24
25
  增加模块html:html页面解析
25
26
  增加模块auto:自动化调用
@@ -56,8 +56,8 @@ class Save(Base):
56
56
  self.log = log
57
57
  def call(self, maps, fp):
58
58
  fp = xf.get(maps, "cache.save", None)
59
- self.log.debug(f"try save cache to '{fp}'")
60
59
  if fp is None:
60
+ self.log.warn(f"cache not save cause 'cache.save' is None")
61
61
  return
62
62
  fz.makefdir(fp)
63
63
  rst = self.cache.data
@@ -67,7 +67,7 @@ class Save(Base):
67
67
 
68
68
  pass
69
69
  @wrap.obj(id="cache")
70
- @wrap.obj_args("ref, log")
70
+ @wrap.obj_args("ref, log", "env, cache.rfp.current.first, false")
71
71
  class Cache(Base):
72
72
  def get(self, key):
73
73
  ks = key.split(".")
@@ -76,16 +76,49 @@ class Cache(Base):
76
76
  xf.sets(self.data, key.split("."), val)
77
77
  def remove(self, key):
78
78
  xf.removes(self.data, key.split("."))
79
- def init(self, log):
79
+ def init(self, log, current_first=False):
80
+ self.current_first = current_first
80
81
  self.log = log
81
82
  self.data = {}
83
+ def set_current(self, dp):
84
+ if type(dp)!=list:
85
+ dp = [dp]
86
+ self.set("cache.path.current", dp)
87
+ def add_current(self, dp):
88
+ dps = self.get_current()
89
+ if dps is None:
90
+ dps = []
91
+ if dp in dps:
92
+ return
93
+ dps.append(dp)
94
+ self.set_current(dps)
95
+ def get_current(self):
96
+ dps = self.get("cache.path.current")
97
+ if type(dps)!=list:
98
+ dps = [dps]
99
+ return dps
100
+ def rfp(self, fp):
101
+ dps = [None,"."]
102
+ cfps = self.get_current()
103
+ if cfps is not None:
104
+ if self.current_first:
105
+ dps = cfps+dps
106
+ else:
107
+ dps = dps+cfps
108
+ for dp in dps:
109
+ _fp = fp
110
+ if dp is not None:
111
+ _fp = os.path.join(dp, fp)
112
+ if os.path.isfile(_fp):
113
+ return _fp
114
+ return fp
82
115
  def call(self, maps, fp):
83
116
  fp = xf.g(maps, cache="cache.js")
84
117
  data = {}
85
118
  if os.path.isfile(fp):
86
119
  self.log.info(f"load cache from {fp}")
87
120
  data = xf.flush_maps(xf.loadf(fp),visit_list=False)
88
- self.data.update(data)
121
+ xf.fill(data, self.data, replace=0)
89
122
  return True
90
123
 
91
124
  pass
@@ -5,12 +5,14 @@ from ..base import Base
5
5
  from ..ioc import wrap
6
6
  import os
7
7
  @wrap.obj(id="buildz.auto.config.load")
8
+ @wrap.obj_set(cache="ref, cache")
8
9
  class Config(Base):
9
10
  def call(self, maps, fp):
10
11
  configs = xf.g(maps, configs=[])
11
12
  if type(configs)!=list:
12
13
  configs = [configs]
13
14
  for cfp in configs:
15
+ cfp = self.cache.rfp(cfp)
14
16
  if not os.path.isfile(cfp):
15
17
  self.log.error(f"config file not exist: {cfp}")
16
18
  return False
@@ -4,11 +4,15 @@ from .. import ioc
4
4
  from ..base import Base
5
5
  from ..ioc import wrap
6
6
  class DealType(Base):
7
- def init(self, deals = {}):
7
+ def init(self, deals = {}, cache = None):
8
8
  self.deals = deals
9
+ self.cache = cache
9
10
  def call(self, data):
10
11
  if type(data)==str:
11
- data = xf.loadf(data)
12
+ fp = data
13
+ if self.cache is not None:
14
+ fp = self.cache.rfp(fp)
15
+ data = xf.loadf(fp)
12
16
  _type = xf.g(data, type = None)
13
17
  return self.deals[_type](data)
14
18
 
@@ -27,7 +31,7 @@ class DefDeal(Base):
27
31
  rst = {}
28
32
  for _type, calls in data.items():
29
33
  rst[_type] = factory(calls)
30
- obj = DealType(rst)
34
+ obj = DealType(rst, self.mg.get("cache"))
31
35
  maps['deal_obj'] = obj
32
36
  return True
33
37
 
@@ -9,4 +9,4 @@
9
9
 
10
10
 
11
11
 
12
- from . import deal, deal_type, factory, cache, verify, log, save, config
12
+ from . import deal, deal_type, factory, cache, verify, log, save, config,request
@@ -0,0 +1,131 @@
1
+ #
2
+
3
+ from ..tools import *
4
+ from buildz.ioc import wrap
5
+ import json
6
+
7
+ try:
8
+ import requests as rq
9
+ session = rq.session()
10
+ except:
11
+ rq = None
12
+ session = None
13
+
14
+ pass
15
+ class Request(Base):
16
+ def init(self, http_type, use_session, log, upd):
17
+ self.type = http_type
18
+ self.use_session = use_session
19
+ self.log = log
20
+ self.upd = upd
21
+ self.fc = None
22
+ self.fcs = None
23
+ self.key_data = None
24
+ self.build()
25
+ def build(self):
26
+ fcs = {}
27
+ global rq, session
28
+ if rq is None:
29
+ return
30
+ obj = rq
31
+ if self.use_session:
32
+ obj = session
33
+ fcs['get'] = [obj.get, "params"]
34
+ fcs['post'] = [obj.post, "data"]
35
+ fcs['json'] = [obj.post, "json"]
36
+ fcs['put'] = [obj.put, "json"]
37
+ fcs['delete'] = [obj.delete, 'json']
38
+ self.fcs = fcs
39
+ self.fc = self.fcs[self.type][0]
40
+ self.key_data = self.fcs[self.type][1]
41
+ def get_set(self, data, kd, maps, km):
42
+ v = xf.get(data, kd)
43
+ if v is not None:
44
+ maps[km] = v
45
+ def req(self, data):
46
+ url = xf.g(data, url=None)
47
+ maps = {}
48
+ self.get_set(data, "data", maps, self.key_data)
49
+ self.get_set(data, "cookies", maps, "cookies")
50
+ self.get_set(data, "headers", maps, "headers")
51
+ self.get_set(data, "proxies", maps, "proxies")
52
+ return self.fc(url, **maps)
53
+ def rsp(self, rp, data):
54
+ url = xf.g(data, url=None)
55
+ xf.s(data, status_code = rp.status_code)
56
+ xf.s(data, result_code = rp.status_code)
57
+ try:
58
+ xf.s(data, result_content=rp.content)
59
+ s = xf.decode(rp.content, "utf-8")
60
+ xf.s(data, result_text=s)
61
+ except Exception as exp:
62
+ self.log.warn(f"exp in deal response on '{url}': {exp}")
63
+ try:
64
+ obj = json.loads(s)
65
+ xf.s(data, result=obj)
66
+ except Exception as exp:
67
+ #self.log.warn(f"exp in deal response on '{url}': {exp}")
68
+ pass
69
+ try:
70
+ xf.s(data, result_cookies=dict(rp.cookies))
71
+ except Exception as exp:
72
+ self.log.warn(f"exp in deal response on '{url}': {exp}")
73
+ try:
74
+ xf.s(data, result_headers = dict(rp.headers))
75
+ except Exception as exp:
76
+ self.log.warn(f"exp in deal response on '{url}': {exp}")
77
+ return True
78
+ def call(self, data, fc=None):
79
+ if self.fc is None:
80
+ self.log.error("install requests to use this(pip install requests)")
81
+ return False
82
+ if self.upd is not None:
83
+ data = self.upd(data)
84
+ url = xf.g(data, url=None)
85
+ try:
86
+ rp = self.req(data)
87
+ except Exception as exp:
88
+ self.log.error("error in request '{url}' with method {self.type}: {exp}")
89
+ return False
90
+ self.rsp(rp, data)
91
+ if fc is None:
92
+ return True
93
+ return fc(data)
94
+
95
+ pass
96
+
97
+
98
+ @wrap.obj(id="request.post")
99
+ @wrap.obj_args("post", "env, request.session, false", "ref, log", "ref, cache.modify")
100
+ class Post(Request):
101
+ pass
102
+
103
+ pass
104
+
105
+ @wrap.obj(id="request.json")
106
+ @wrap.obj_args("json", "env, request.session, false", "ref, log", "ref, cache.modify")
107
+ class Json(Request):
108
+ pass
109
+
110
+ pass
111
+
112
+ @wrap.obj(id="request.get")
113
+ @wrap.obj_args("get", "env, request.session, false", "ref, log", "ref, cache.modify")
114
+ class Get(Request):
115
+ pass
116
+
117
+ pass
118
+
119
+ @wrap.obj(id="request.put")
120
+ @wrap.obj_args("put", "env, request.session, false", "ref, log", "ref, cache.modify")
121
+ class Put(Request):
122
+ pass
123
+
124
+ pass
125
+
126
+ @wrap.obj(id="request.delete")
127
+ @wrap.obj_args("delete", "env, request.session, false", "ref, log", "ref, cache.modify")
128
+ class Delete(Request):
129
+ pass
130
+
131
+ pass
@@ -0,0 +1,39 @@
1
+ from .. import xf,fz
2
+ from .. import ioc
3
+ from ..base import Base
4
+ from . import init
5
+ import os
6
+ class Run(Base):
7
+ def init(self, fps=None):
8
+ mg = ioc.build()
9
+ if fps is not None:
10
+ mg.add_fps(fps)
11
+ self.mg = mg
12
+ def add_current(self, dp):
13
+ self.mg.get("cache").add_current(dp)
14
+ def call(self, fp):
15
+ self.log = self.mg.get("log")
16
+ if not os.path.isfile(fp):
17
+ dp = os.path.dirname(fp)
18
+ fn = os.path.basename(fp)
19
+ fps = fz.search(dp, fn)
20
+ print(f"search dp:{dp}, fn: {fn}, rst: {fps}")
21
+ if len(fps)!=1:
22
+ self.log.error(f"can't find filepath: {fp}")
23
+ return False
24
+ fp = fps[0]
25
+ maps = xf.loadf(fp)
26
+ dp = os.path.dirname(os.path.abspath(fp))
27
+ self.add_current(dp)
28
+ config = self.mg.get("buildz.auto.config.load")
29
+ if not config(maps, fp):
30
+ return False
31
+ calls = xf.g(maps, calls = [])
32
+ for deal in calls:
33
+ fc = self.mg.get(deal)
34
+ if not fc(maps, fp):
35
+ return False
36
+ return True
37
+
38
+ pass
39
+
@@ -0,0 +1,16 @@
1
+ {
2
+ host: www.baidu.com,
3
+ test: {
4
+ url: tmpurl,
5
+ val: 1,
6
+ code: 1.99
7
+ },
8
+ result: {
9
+ code: 1.99
10
+ },
11
+ test2: {
12
+ headers: {
13
+ content_type: "text/html; charset=utf-8"
14
+ }
15
+ }
16
+ }
@@ -1,9 +1,10 @@
1
1
  calls: [log, cache, def.deal.type, list, cache.save]
2
- cache: cache.js
3
- cache.save: cache.js
4
- log: %Y%m%d_log.txt
2
+ cache: cache/cache.js
3
+ cache.save: cache/cache.js
4
+ log: log/%Y%m%d_log.txt
5
5
  def.deal: {
6
6
  types: {
7
7
  http.get: [request, verify, save]
8
+ get: [request.get, verify, save]
8
9
  }
9
10
  }
@@ -0,0 +1,15 @@
1
+ note: test2
2
+ url: "https://#{host}/"
3
+ type: get
4
+ headers: {
5
+ User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
6
+ }
7
+ data: {
8
+ }
9
+ verify: [
10
+ "status_code, 200"
11
+ "result_headers.Content-Type, 'text/html; charset=utf-8'"
12
+ ]
13
+ save: {
14
+ test2.headers.content_type: result_headers.Content-Type
15
+ }
@@ -1,4 +1,4 @@
1
- configs: config.js
1
+ configs: config/config.js
2
2
  datas: [
3
3
  //写一个配置
4
4
  {
@@ -23,4 +23,5 @@ datas: [
23
23
  }
24
24
  // 或者配置所在的文件
25
25
  item1.js
26
+ item2.js
26
27
  ]
@@ -16,8 +16,9 @@ class Req(Base):
16
16
 
17
17
  pass
18
18
  from buildz.auto import Run
19
+ import sys
19
20
  def test():
20
- Run()("test.js")
21
+ Run()("data/test")
21
22
 
22
23
  pass
23
24
  pyz.lc(locals(), test)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.13
3
+ Version: 0.6.15
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
@@ -33,6 +33,7 @@ License-File: LICENSE
33
33
  持续更新中。。。
34
34
  2024/09/25:
35
35
  修复bug,增强html的搜索功能,增强auto配置功能
36
+ auto里加了个request的demo,里面用的requests库,可以直接配置来进行http调用
36
37
  2024/09/24:
37
38
  增加模块html:html页面解析
38
39
  增加模块auto:自动化调用
@@ -21,14 +21,16 @@ buildz/auto/deal_type.py
21
21
  buildz/auto/factory.py
22
22
  buildz/auto/init.py
23
23
  buildz/auto/log.py
24
+ buildz/auto/request.py
24
25
  buildz/auto/run.py
25
26
  buildz/auto/save.py
26
27
  buildz/auto/verify.py
27
- buildz/auto/test/cache.js
28
- buildz/auto/test/config.js
29
- buildz/auto/test/item1.js
30
- buildz/auto/test/test.js
31
28
  buildz/auto/test/test.py
29
+ buildz/auto/test/cache/cache.js
30
+ buildz/auto/test/config/config.js
31
+ buildz/auto/test/data/item1.js
32
+ buildz/auto/test/data/item2.js
33
+ buildz/auto/test/data/test.js
32
34
  buildz/db/__main__.py
33
35
  buildz/db/install.txt
34
36
  buildz/db/run.conf
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.6.13',
10
+ version = '0.6.15',
11
11
  keywords='buildz',
12
12
  long_description=open('README.md', 'r', encoding="utf-8").read(),
13
13
  long_description_content_type='text/markdown',
@@ -1,24 +0,0 @@
1
- from .. import xf
2
- from .. import ioc
3
- from ..base import Base
4
- from . import init
5
- import os
6
- class Run(Base):
7
- def init(self, fps=None):
8
- mg = ioc.build()
9
- if fps is not None:
10
- mg.add_fps(fps)
11
- self.mg = mg
12
- def call(self, fp):
13
- maps = xf.loadf(fp)
14
- config = self.mg.get("buildz.auto.config.load")
15
- if not config(maps, fp):
16
- return
17
- calls = xf.g(maps, calls = [])
18
- for deal in calls:
19
- fc = self.mg.get(deal)
20
- if not fc(maps, fp):
21
- break
22
-
23
- pass
24
-
@@ -1,10 +0,0 @@
1
- {
2
- test: {
3
- url: tmpurl,
4
- val: 1,
5
- code: 1.99
6
- },
7
- result: {
8
- code: 1.99
9
- }
10
- }
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
File without changes