buildz 0.6.7__tar.gz → 0.6.8__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 (160) hide show
  1. {buildz-0.6.7/buildz.egg-info → buildz-0.6.8}/PKG-INFO +1 -1
  2. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc/base.py +10 -5
  3. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc/conf.py +4 -0
  4. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc/confs.py +15 -1
  5. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc/single.py +10 -4
  6. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/obj.py +13 -39
  7. {buildz-0.6.7 → buildz-0.6.8}/buildz/pyz.py +22 -0
  8. buildz-0.6.8/buildz/tools.py +3 -0
  9. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/__init__.py +1 -1
  10. buildz-0.6.8/buildz/xf/loaderz/deal/listmapz.py +57 -0
  11. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/listz.py +5 -4
  12. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/mapz.py +4 -4
  13. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/item.py +3 -2
  14. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/mg.py +5 -0
  15. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/readz.py +65 -2
  16. {buildz-0.6.7 → buildz-0.6.8/buildz.egg-info}/PKG-INFO +1 -1
  17. {buildz-0.6.7 → buildz-0.6.8}/buildz.egg-info/SOURCES.txt +2 -0
  18. {buildz-0.6.7 → buildz-0.6.8}/setup.py +1 -1
  19. {buildz-0.6.7 → buildz-0.6.8}/LICENSE +0 -0
  20. {buildz-0.6.7 → buildz-0.6.8}/MANIFEST.in +0 -0
  21. {buildz-0.6.7 → buildz-0.6.8}/README.md +0 -0
  22. {buildz-0.6.7 → buildz-0.6.8}/buildz/__init__.py +0 -0
  23. {buildz-0.6.7 → buildz-0.6.8}/buildz/__main__.py +0 -0
  24. {buildz-0.6.7 → buildz-0.6.8}/buildz/argx.py +0 -0
  25. {buildz-0.6.7 → buildz-0.6.8}/buildz/base.py +0 -0
  26. {buildz-0.6.7 → buildz-0.6.8}/buildz/cmd.py +0 -0
  27. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/__main__.py +0 -0
  28. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/dv/basez.py +0 -0
  29. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/dv/clickhousez.py +0 -0
  30. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/dv/lib/readme +0 -0
  31. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/dv/mysqlz.py +0 -0
  32. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/dv/oraclez.py +0 -0
  33. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/dv/structz.py +0 -0
  34. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/install.txt +0 -0
  35. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/run.conf +0 -0
  36. {buildz-0.6.7 → buildz-0.6.8}/buildz/db/runz.py +0 -0
  37. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/ioc/deal.py +0 -0
  38. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/ioc/help.py +0 -0
  39. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/myers/deal.py +0 -0
  40. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/myers/help.py +0 -0
  41. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/conf/ioc.js +0 -0
  42. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/conf/main.js +0 -0
  43. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/conf/myers.js +0 -0
  44. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/conf/search.js +0 -0
  45. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/conf/xf.js +0 -0
  46. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/help/default.js +0 -0
  47. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/help/ioc.js +0 -0
  48. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/help/myers.js +0 -0
  49. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/help/search.js +0 -0
  50. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/help/xf.js +0 -0
  51. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/res/test.js +0 -0
  52. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/search/deal.py +0 -0
  53. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/search/help.py +0 -0
  54. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/test.py +0 -0
  55. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/xf/deal.py +0 -0
  56. {buildz-0.6.7 → buildz-0.6.8}/buildz/demo/xf/help.py +0 -0
  57. {buildz-0.6.7 → buildz-0.6.8}/buildz/fz/__init__.py +0 -0
  58. {buildz-0.6.7 → buildz-0.6.8}/buildz/fz/dirz.py +0 -0
  59. {buildz-0.6.7 → buildz-0.6.8}/buildz/fz/fhs.py +0 -0
  60. {buildz-0.6.7 → buildz-0.6.8}/buildz/fz/fio.py +0 -0
  61. {buildz-0.6.7 → buildz-0.6.8}/buildz/fz/lsf.py +0 -0
  62. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/__init__.py +0 -0
  63. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/base.py +0 -0
  64. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/init.py +0 -0
  65. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/base.py +0 -0
  66. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/call.py +0 -0
  67. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/calls.py +0 -0
  68. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  69. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  70. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  71. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  72. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  73. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  74. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  75. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  76. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  77. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  78. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  79. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  80. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  81. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  82. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  83. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  84. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  85. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  86. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  87. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  88. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  89. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  90. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  91. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/deal.py +0 -0
  92. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/demo.py +0 -0
  93. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/env.py +0 -0
  94. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/ioc.py +0 -0
  95. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/iocf.py +0 -0
  96. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/join.py +0 -0
  97. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/list.py +0 -0
  98. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/map.py +0 -0
  99. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/mcall.py +0 -0
  100. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/ovar.py +0 -0
  101. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/ref.py +0 -0
  102. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/val.py +0 -0
  103. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/var.py +0 -0
  104. {buildz-0.6.7 → buildz-0.6.8}/buildz/ioc/ioc_deal/xfile.py +0 -0
  105. {buildz-0.6.7 → buildz-0.6.8}/buildz/tz/__init__.py +0 -0
  106. {buildz-0.6.7 → buildz-0.6.8}/buildz/tz/myers_diff.py +0 -0
  107. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/__main__.py +0 -0
  108. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/code.py +0 -0
  109. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/code_modify.py +0 -0
  110. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/copy_old.py +0 -0
  111. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/file.py +0 -0
  112. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/base.py +0 -0
  113. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/buffer.py +0 -0
  114. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/listz.py +0 -0
  115. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/lr.py +0 -0
  116. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/lrval.py +0 -0
  117. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/mapz.py +0 -0
  118. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/nextz.py +0 -0
  119. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/reval.py +0 -0
  120. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/setz.py +0 -0
  121. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/spc.py +0 -0
  122. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/spt.py +0 -0
  123. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/deal/strz.py +0 -0
  124. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/exp.py +0 -0
  125. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/item.py +0 -0
  126. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/mg.py +0 -0
  127. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loader/pos.py +0 -0
  128. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/base.py +0 -0
  129. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/buffer.py +0 -0
  130. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/lr.py +0 -0
  131. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/lrval.py +0 -0
  132. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/nextz.py +0 -0
  133. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/reval.py +0 -0
  134. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/setz.py +0 -0
  135. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/spc.py +0 -0
  136. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/spt.py +0 -0
  137. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/strz.py +0 -0
  138. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/strz_new.py +0 -0
  139. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/deal/strz_old.py +0 -0
  140. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/exp.py +0 -0
  141. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/pos.py +0 -0
  142. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/test.py +0 -0
  143. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/loaderz/test1.py +0 -0
  144. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/mapz.py +0 -0
  145. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/read.py +0 -0
  146. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/stack.py +0 -0
  147. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/write.py +0 -0
  148. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/base.py +0 -0
  149. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/conf.py +0 -0
  150. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/deal/jsonval.py +0 -0
  151. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/deal/listz.py +0 -0
  152. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/deal/mapz.py +0 -0
  153. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/deal/reval.py +0 -0
  154. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/deal/strz.py +0 -0
  155. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/itemz.py +0 -0
  156. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/writer/mg.py +0 -0
  157. {buildz-0.6.7 → buildz-0.6.8}/buildz/xf/xargs.py +0 -0
  158. {buildz-0.6.7 → buildz-0.6.8}/buildz.egg-info/dependency_links.txt +0 -0
  159. {buildz-0.6.7 → buildz-0.6.8}/buildz.egg-info/top_level.txt +0 -0
  160. {buildz-0.6.7 → buildz-0.6.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.7
3
+ Version: 0.6.8
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
@@ -30,7 +30,7 @@ class EncapeData(Base):
30
30
  包含data id对应的配置,配置文件id,配置文件对象
31
31
  [object.test, call, ]
32
32
  """
33
- def __init__(self, data, conf, local = False, type = None, src = None, info = None):
33
+ def __init__(self, data, conf=None, local = False, type = None, src = None, info = None, confs = None):
34
34
  """
35
35
  data: 配置数据
36
36
  conf: 配置数据对应的配置文件的管理器
@@ -56,16 +56,21 @@ class EncapeData(Base):
56
56
  raise IOCError("only dict can be a parent: "+pid)
57
57
  self.update_maps(data, pdt, replace=0)
58
58
  self.data = data
59
- self.sid = conf.id
59
+ if conf is not None:
60
+ self.sid = conf.id
61
+ if type is None:
62
+ type = conf.confs.get_data_type(data, 0, conf.default_type())
63
+ if confs is None:
64
+ confs = conf.confs
60
65
  self.src = src
61
66
  self.conf = conf
62
- self.confs = conf.confs
67
+ self.confs = confs
63
68
  self.local = local
64
- if type is None:
65
- type = conf.confs.get_data_type(data, 0, conf.default_type())
66
69
  self.type = type
67
70
  self.info = info
68
71
  def deal(self, remove = False):
72
+ if self.conf is None:
73
+ return self.confs.get(self, src = self.src, info=self.info, remove = remove)
69
74
  return self.conf.get(self, src = self.src, info=self.info, remove = remove)
70
75
 
71
76
 
@@ -200,6 +200,10 @@ class Conf(Base):
200
200
  if conf is None:
201
201
  raise IdNotFoundError(f"can't find conf of {id}")
202
202
  return None
203
+ if conf.conf is None:
204
+ if remove:
205
+ return None
206
+ return conf.data()
203
207
  deal = self.get_deal(conf.type)
204
208
  if deal is None:
205
209
  raise IOCError(f"can't find deal of {id}, type = {conf.type}")
@@ -231,8 +231,15 @@ class Confs(Base):
231
231
  self.envs_args = None
232
232
  self.mark_init = False
233
233
  self.vars = {}
234
+ self.fcs = {}
234
235
  if 'args' in self.env_orders:
235
236
  self.build_env_args()
237
+ def set_fc(self, key, fc):
238
+ self.fcs[key] = fc
239
+ def get_fc(self, key):
240
+ if key not in self.fcs:
241
+ return None
242
+ return self.fcs[key]
236
243
  def get_var(self, key, i=-1):
237
244
  if not self.has_var(key):
238
245
  return None, False
@@ -368,6 +375,10 @@ class Confs(Base):
368
375
  if conf is None:
369
376
  raise IdNotFoundError(f"confs: can't find conf of {id}")
370
377
  return None
378
+ if conf.conf is None:
379
+ if remove:
380
+ return None
381
+ return conf.data()
371
382
  deal = self.get_deal(conf.type, sid)
372
383
  if deal is None:
373
384
  raise IOCError(f"confs: can't find deal of {id}, type = {conf.type}")
@@ -417,6 +428,9 @@ class Confs(Base):
417
428
  _conf = conf.get_data(id, sid==conf.id, False, src = src, info = info)
418
429
  if _conf is not None:
419
430
  return _conf
420
- return None
431
+ fc = self.get_fc(id)
432
+ if fc is None:
433
+ return None
434
+ return EncapeData(fc, confs=self)
421
435
 
422
436
  pass
@@ -41,21 +41,27 @@ class Single(Base):
41
41
  else:
42
42
  ids = [sid, 'single', id]
43
43
  return ids
44
- def get(self, edata:EncapeData):
45
- ids = self.get_ids(edata)
44
+ def get_by_ids(self, ids):
46
45
  if ids is None:
47
46
  return None
48
47
  obj = xf.gets(self.singles, ids)
49
48
  return obj
50
- def set(self, obj, edata:EncapeData):
49
+ def get(self, edata:EncapeData):
51
50
  ids = self.get_ids(edata)
51
+ return self.get_by_ids(ids)
52
+ def set_by_ids(self, ids, obj):
52
53
  if ids is None:
53
54
  return
54
55
  xf.sets(self.singles, ids, obj)
55
- def remove(self,edata:EncapeData):
56
+ def set(self, obj, edata:EncapeData):
56
57
  ids = self.get_ids(edata)
58
+ self.set_by_ids(ids, obj)
59
+ def rm_by_ids(self, idsj):
57
60
  if ids is None:
58
61
  return
59
62
  xf.removes(self.singles, ids)
63
+ def remove(self,edata:EncapeData):
64
+ ids = self.get_ids(edata)
65
+ self.rm_by_ids(ids)
60
66
 
61
67
  pass
@@ -1,5 +1,6 @@
1
1
  #
2
2
  from ..ioc.base import Base, EncapeData,IOCError
3
+ from ..ioc.single import Single
3
4
  from .base import FormatData,FormatDeal
4
5
  from buildz import xf, pyz
5
6
  import os
@@ -59,6 +60,7 @@ class ObjectDeal(FormatDeal):
59
60
  """
60
61
  def init(self, fp_lists = None, fp_defaults = None, fp_cst = None, fp_set = None):
61
62
  self.singles = {}
63
+ self.single = Single("single", "id", 1)
62
64
  self.sources = {}
63
65
  super().init("ObjectDeal", fp_lists, fp_defaults,
64
66
  join(dp, "conf", "obj_lists.js"),
@@ -100,28 +102,13 @@ class ObjectDeal(FormatDeal):
100
102
  icst = None
101
103
  isets = xf.g(info, sets = None)
102
104
  ivars = xf.g(info, vars=None)
103
- else:
104
- cid = None
105
+ ids = self.single.get_ids(edata)
105
106
  id = xf.g(data, id = None)
106
- single = xf.g(data, single=None)
107
- if id is None:
108
- single = 0
109
- if single is None:
110
- single = 1
111
- ids = None
112
- if single or cid is not None:
113
- if cid is not None:
114
- ids = [sid, 'local_id', id, cid]
115
- else:
116
- if icst is not None or isets is not None:
117
- raise Exception("set info.construct/info.sets while using single without info.id")
118
- ids = [sid, 'single', id]
119
107
  #print(f"obj.deal ids: {ids} for {data}")
120
- if ids is not None:
121
- obj = xf.gets(self.singles, ids)
122
- if obj is not None:
123
- #raise IOCError(f"null for {ids}")
124
- return obj
108
+ obj = self.single.get_by_ids(ids)
109
+ if obj is not None:
110
+ #raise IOCError(f"null for {ids}")
111
+ return obj
125
112
  #source = xf.g(data, source=0)
126
113
  source = xf.g1(data, source=0, src=0)
127
114
  if source == 0:
@@ -148,9 +135,11 @@ class ObjectDeal(FormatDeal):
148
135
  self.push_vars(conf, ivars)
149
136
  args = [self.get_obj(v, conf) for v in args]
150
137
  maps = {k:self.get_obj(maps[k], conf) for k in maps}
138
+ obj = self.single.get_by_ids(ids)
139
+ if obj is not None:
140
+ return obj
151
141
  obj = fc(*args, **maps)
152
- if ids is not None:
153
- xf.sets(self.singles, ids, obj)
142
+ self.single.set_by_ids(ids, obj)
154
143
  prev_call = xf.g(data, prev_call=None)
155
144
  if prev_call is not None:
156
145
  # TODO: 这边info透传不知道会不会有问题
@@ -190,23 +179,8 @@ class ObjectDeal(FormatDeal):
190
179
  info = edata.info
191
180
  conf = edata.conf
192
181
  confs = edata.confs
193
- if type(info) == dict:
194
- cid = xf.g(info, id=None)
195
- else:
196
- cid = None
197
- id = xf.g(data, id = None)
198
- single = xf.g(data, single=None)
199
- if id is None:
200
- single = 0
201
- ids = None
202
- if single or cid is not None:
203
- if single:
204
- ids = [sid, id]
205
- else:
206
- ids = [sid, id, cid]
207
- if ids is None:
208
- return None
209
- obj = xf.gets(self.singles, ids)
182
+ ids = self.single.get_ids(edata)
183
+ obj = self.single.get_by_ids(ids)
210
184
  if obj is None:
211
185
  return None
212
186
  call = xf.g(data, remove=None)
@@ -2,6 +2,8 @@
2
2
  import sys
3
3
  import os
4
4
  import hashlib
5
+ import inspect
6
+ from .base import Base
5
7
  class With:
6
8
  def __init__(self, fc_in, fc_out, args = False):
7
9
  self.fc_in = fc_in
@@ -125,3 +127,23 @@ class Pth:
125
127
  pass
126
128
 
127
129
  _pth = Pth()
130
+ def main(name, fc, *args, **maps):
131
+ if name=="__main__":
132
+ fc(*args, **maps)
133
+
134
+ pass
135
+
136
+ def bylocals(mlocals, fc, *args, **maps):
137
+ if mlocals['__name__']=="__main__":
138
+ fc(*args, **maps)
139
+
140
+ pass
141
+
142
+ def mainerr(fc, *args, **maps):
143
+ st = inspect.stack()[1]
144
+ if st.filename == '<stdin>':
145
+ fc(*args, **maps)
146
+ else:
147
+ print("not main:", st.filename)
148
+
149
+ pass
@@ -0,0 +1,3 @@
1
+ #coding=utf-8
2
+ # from buildz.tools import *
3
+ from . import pyz,xf,fz,Base
@@ -1,5 +1,5 @@
1
1
 
2
- from .readz import loads, load, loadf
2
+ from .readz import loads, load, loadf, loads_args, loadx, is_args
3
3
  from .write import dumps, dump, dumpf
4
4
  from .file import *
5
5
  from .mapz import *
@@ -0,0 +1,57 @@
1
+ from .. import base
2
+ from .. import item
3
+ from .. import exp
4
+ from . import lr
5
+ from buildz import Base
6
+ class Args(Base):
7
+ def str(self):
8
+ return f"<Args args={self.args}, maps={self.maps}>"
9
+ def init(self, args, maps):
10
+ self.args = args
11
+ self.maps = maps
12
+
13
+ pass
14
+ class ListMapDeal(lr.LRDeal):
15
+ """
16
+ 分隔符,有分隔符后将缓存的数据当作字符串
17
+ """
18
+ def init(self, left, right):
19
+ super().init(left, right, "listmap")
20
+ def types(self):
21
+ return ['list']
22
+ def build(self, obj):
23
+ # if self.check_right(obj):
24
+ # return None
25
+ val = obj.val
26
+ if len(val)==0:
27
+ obj.val = []
28
+ obj.is_val = 1
29
+ return obj
30
+ return self.build_arr(val)
31
+ def build_arr(self, arr):
32
+ rst = {}
33
+ lst = []
34
+ mp = {}
35
+ i = 0
36
+ while i<len(arr):
37
+ obj = arr[i]
38
+ opt = None
39
+ if i+1<len(arr):
40
+ opt = arr[i+1]
41
+ if opt is not None and opt.type == 'kv':
42
+ if i+2>=len(arr):
43
+ raise Exception(f"u f in listmap: {arr}")
44
+ val = arr[i+2]
45
+ mp[obj.val]=val.val
46
+ i+=3
47
+ else:
48
+ lst.append(obj.val)
49
+ i+=1
50
+ if len(mp)==0:
51
+ return item.Item(lst, type="list", is_val=1)
52
+ elif len(lst)==0:
53
+ return item.Item(mp, type="map", is_val=1)
54
+ else:
55
+ return item.Item(Args(lst, mp), type='args', is_val=1)
56
+
57
+ pass
@@ -9,13 +9,14 @@ class ListDeal(lr.LRDeal):
9
9
  def init(self, left, right):
10
10
  super().init(left, right, 'list')
11
11
  def types(self):
12
- return ['str','list']
12
+ return ['list']
13
13
  def build(self, obj):
14
- if self.check_right(obj):
15
- return None
14
+ #print(f"list build: {obj}")
15
+ #if self.check_right(obj):
16
+ # return None
16
17
  val = obj.val
17
18
  if len(val)==0:
18
- obj.val = ''
19
+ obj.val = []
19
20
  obj.is_val = 1
20
21
  return obj
21
22
  if len(val)>1:
@@ -9,13 +9,13 @@ class MapDeal(lr.LRDeal):
9
9
  def init(self, left, right):
10
10
  super().init(left, right, "map")
11
11
  def types(self):
12
- return ['list','str']
12
+ return ['list']
13
13
  def build(self, obj):
14
- if self.check_right(obj):
15
- return None
14
+ #if self.check_right(obj):
15
+ # return None
16
16
  val = obj.val
17
17
  if len(val)==0:
18
- obj.val = ''
18
+ obj.val = {}
19
19
  obj.is_val = 1
20
20
  return obj
21
21
  if len(val)%3!=0:
@@ -7,13 +7,14 @@ remain和type?
7
7
  '''
8
8
  class Item:
9
9
  def __str__(self):
10
- return f"<Item val={self.val}, type = {self.type}, is_val = {self.is_val}>"
10
+ return f"<Item val={self.val}, type = {self.type}, is_val = {self.is_val}, others={self.others}>"
11
11
  def __repr__(self):
12
12
  return str(self)
13
- def __init__(self, val, type = None, is_val=False):
13
+ def __init__(self, val, type = None, is_val=False, others = None):
14
14
  self.val= val
15
15
  self.is_val= is_val
16
16
  self.type = type
17
+ self.others=others
17
18
 
18
19
  pass
19
20
  class NoneItem:
@@ -97,13 +97,18 @@ class Manager:
97
97
  # if len(k.strip())==0:
98
98
  # continue
99
99
  # rst.append(k)
100
+ #print(f"mg arr: {arr}")
100
101
  arr = self.build_arr(arr)
102
+ #print(f"mg arr: {arr}")
101
103
  obj = item.Item(arr, type = "list", is_val = 0)
102
104
  obj = self.build(obj)
103
105
  #arr = rst
104
106
  #if len(arr)==1:
105
107
  # arr = arr[0]
106
108
  val = obj.val
109
+ #print(f"mg val:{val}")
110
+ if type(val) in [list,map] and len(val)==0:
111
+ val = ""
107
112
  if type(val)==list and len(val)==1:
108
113
  val = val[0]
109
114
  return val
@@ -1,7 +1,7 @@
1
1
 
2
2
  from .loaderz import mg, buffer, base
3
3
  from . import file
4
- from .loaderz.deal import nextz, spt, strz, listz, spc, setz, mapz, reval, lrval
4
+ from .loaderz.deal import nextz, spt, strz, listz, spc, setz, mapz, reval, lrval, listmapz
5
5
  class BoolFc:
6
6
  def __init__(self, mg):
7
7
  trues = [mg.like(k) for k in ["true", "True", "1"]]
@@ -77,10 +77,73 @@ def build(as_bytes=False):
77
77
  g_mg = mgs
78
78
  return mgs
79
79
 
80
+ pass
81
+ g_mgx = None
82
+ def build_args(as_bytes=False):
83
+ global g_mgx
84
+ if g_mgx is not None and g_mgx.as_bytes == as_bytes:
85
+ return g_mgx
86
+ mgs = mg.Manager(as_bytes)
87
+ mgs.add(setz.SetDeal(':'))
88
+ mgs.add(setz.SetDeal('='))
89
+ mgs.add(spt.PrevSptDeal(",",1))
90
+ mgs.add(spt.PrevSptDeal(';',1))
91
+ mgs.add(spt.PrevSptDeal('\n'))
92
+ mgs.add(spt.PrevSptDeal(' '))
93
+ build_lrval(mgs)
94
+ # mgs.add(listz.ListDeal("(", ")"))
95
+ # mgs.add(listz.ListDeal("[", "]"))
96
+ # mgs.add(mapz.MapDeal("{", "}"))
97
+ mgs.add(listmapz.ListMapDeal("(", ")"))
98
+ mgs.add(listmapz.ListMapDeal("[", "]"))
99
+ mgs.add(listmapz.ListMapDeal("{", "}"))
100
+ build_val(mgs)
101
+ #1,0,0,1: 没引号当r"..."
102
+ #1,0,1,1: 没引导当"..."
103
+ mgs.add(strz.PrevStrDeal("r'''","'''",0,0,0))
104
+ mgs.add(strz.PrevStrDeal('r"""','"""',0,0,0))
105
+ mgs.add(strz.PrevStrDeal("r'","'",1,0,0,1))
106
+ mgs.add(strz.PrevStrDeal('r"','"',1,0,0))
107
+ mgs.add(strz.PrevStrDeal("###","###",0,1))
108
+ mgs.add(strz.PrevStrDeal("/*","*/",0,1))
109
+ mgs.add(strz.PrevStrDeal("'''","'''",0,0,1))
110
+ mgs.add(strz.PrevStrDeal('"""','"""',0,0,1))
111
+ mgs.add(strz.PrevStrDeal("#","\n",1,1))
112
+ mgs.add(strz.PrevStrDeal("//","\n",1,1))
113
+ mgs.add(strz.PrevStrDeal("'","'",1,0,1))
114
+ mgs.add(strz.PrevStrDeal('"','"',1,0,1))
115
+ mgs.add(nextz.PrevNextDeal())
116
+ g_mgx = mgs
117
+ return mgs
118
+
80
119
  pass
81
120
  def load(read, as_bytes = False):
82
121
  mgs = build(as_bytes)
83
122
  return msg.loads(read)
123
+
124
+ pass
125
+ def is_args(obj):
126
+ return type(obj)==listmapz.Args
127
+
128
+ pass
129
+ def loads_args(s, as_args = False, as_bytes = False):
130
+ mgs = build_args(type(s)==bytes)
131
+ #input = buffer.BufferInput(s)
132
+ rst = mgs.loads(s)
133
+ if not as_args:
134
+ return rst
135
+ if is_args(rst):
136
+ return rst
137
+ if type(rst) not in [list, dict]:
138
+ rst = [rst]
139
+ if type(rst)==list:
140
+ rst = [rst, {}]
141
+ else:
142
+ rst = [[], rst]
143
+ return listmapz.Args(*rst)
144
+
145
+ pass
146
+ loadx = loads_args
84
147
  def loads(s):
85
148
  mgs = build(type(s)==bytes)
86
149
  #input = buffer.BufferInput(s)
@@ -95,4 +158,4 @@ def loadf(fp, bts = False):
95
158
  s = file.fread(fp)
96
159
  return loads(s)
97
160
 
98
- pass
161
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.7
3
+ Version: 0.6.8
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
@@ -8,6 +8,7 @@ buildz/argx.py
8
8
  buildz/base.py
9
9
  buildz/cmd.py
10
10
  buildz/pyz.py
11
+ buildz/tools.py
11
12
  buildz.egg-info/PKG-INFO
12
13
  buildz.egg-info/SOURCES.txt
13
14
  buildz.egg-info/dependency_links.txt
@@ -133,6 +134,7 @@ buildz/xf/loaderz/mg.py
133
134
  buildz/xf/loaderz/pos.py
134
135
  buildz/xf/loaderz/test.py
135
136
  buildz/xf/loaderz/test1.py
137
+ buildz/xf/loaderz/deal/listmapz.py
136
138
  buildz/xf/loaderz/deal/listz.py
137
139
  buildz/xf/loaderz/deal/lr.py
138
140
  buildz/xf/loaderz/deal/lrval.py
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.6.7',
10
+ version = '0.6.8',
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