buildz 0.6.2__tar.gz → 0.6.4__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 (157) hide show
  1. {buildz-0.6.2/buildz.egg-info → buildz-0.6.4}/PKG-INFO +1 -1
  2. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc/base.py +1 -0
  3. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc/conf.py +24 -7
  4. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc/confs.py +35 -13
  5. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/base.py +15 -0
  6. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/call.py +18 -5
  7. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/calls.py +2 -1
  8. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/call_lists.js +2 -2
  9. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/calls_lists.js +2 -2
  10. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/deal_lists.js +2 -2
  11. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/env_lists.js +2 -2
  12. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/ioc_lists.js +2 -2
  13. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/iocf_lists.js +2 -2
  14. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/join_lists.js +2 -2
  15. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/list_lists.js +2 -2
  16. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/map_lists.js +2 -2
  17. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/mcall_lists.js +2 -2
  18. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/obj_lists.js +11 -9
  19. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/ovar_lists.js +2 -2
  20. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/ref_lists.js +2 -2
  21. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/var_lists.js +1 -1
  22. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/xfile_lists.js +2 -2
  23. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/env.py +3 -2
  24. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/map.py +1 -1
  25. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/mcall.py +20 -7
  26. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/obj.py +15 -5
  27. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/ovar.py +4 -3
  28. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/ref.py +5 -2
  29. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/val.py +1 -1
  30. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/var.py +1 -1
  31. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/readz.py +1 -1
  32. {buildz-0.6.2 → buildz-0.6.4/buildz.egg-info}/PKG-INFO +1 -1
  33. {buildz-0.6.2 → buildz-0.6.4}/setup.py +1 -1
  34. {buildz-0.6.2 → buildz-0.6.4}/LICENSE +0 -0
  35. {buildz-0.6.2 → buildz-0.6.4}/MANIFEST.in +0 -0
  36. {buildz-0.6.2 → buildz-0.6.4}/README.md +0 -0
  37. {buildz-0.6.2 → buildz-0.6.4}/buildz/__init__.py +0 -0
  38. {buildz-0.6.2 → buildz-0.6.4}/buildz/__main__.py +0 -0
  39. {buildz-0.6.2 → buildz-0.6.4}/buildz/argx.py +0 -0
  40. {buildz-0.6.2 → buildz-0.6.4}/buildz/cmd.py +0 -0
  41. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/__main__.py +0 -0
  42. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/dv/basez.py +0 -0
  43. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/dv/clickhousez.py +0 -0
  44. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/dv/lib/readme +0 -0
  45. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/dv/mysqlz.py +0 -0
  46. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/dv/oraclez.py +0 -0
  47. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/dv/structz.py +0 -0
  48. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/install.txt +0 -0
  49. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/run.conf +0 -0
  50. {buildz-0.6.2 → buildz-0.6.4}/buildz/db/runz.py +0 -0
  51. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/ioc/deal.py +0 -0
  52. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/ioc/help.py +0 -0
  53. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/myers/deal.py +0 -0
  54. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/myers/help.py +0 -0
  55. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/conf/ioc.js +0 -0
  56. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/conf/main.js +0 -0
  57. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/conf/myers.js +0 -0
  58. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/conf/search.js +0 -0
  59. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/conf/xf.js +0 -0
  60. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/help/default.js +0 -0
  61. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/help/ioc.js +0 -0
  62. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/help/myers.js +0 -0
  63. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/help/search.js +0 -0
  64. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/help/xf.js +0 -0
  65. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/res/test.js +0 -0
  66. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/search/deal.py +0 -0
  67. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/search/help.py +0 -0
  68. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/test.py +0 -0
  69. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/xf/deal.py +0 -0
  70. {buildz-0.6.2 → buildz-0.6.4}/buildz/demo/xf/help.py +0 -0
  71. {buildz-0.6.2 → buildz-0.6.4}/buildz/fz/__init__.py +0 -0
  72. {buildz-0.6.2 → buildz-0.6.4}/buildz/fz/dirz.py +0 -0
  73. {buildz-0.6.2 → buildz-0.6.4}/buildz/fz/fhs.py +0 -0
  74. {buildz-0.6.2 → buildz-0.6.4}/buildz/fz/fio.py +0 -0
  75. {buildz-0.6.2 → buildz-0.6.4}/buildz/fz/lsf.py +0 -0
  76. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/__init__.py +0 -0
  77. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/base.py +0 -0
  78. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/init.py +0 -0
  79. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc/single.py +0 -0
  80. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  81. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  82. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  83. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  84. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  85. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  86. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  87. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  88. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/deal.py +0 -0
  89. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/demo.py +0 -0
  90. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/ioc.py +0 -0
  91. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/iocf.py +0 -0
  92. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/join.py +0 -0
  93. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/list.py +0 -0
  94. {buildz-0.6.2 → buildz-0.6.4}/buildz/ioc/ioc_deal/xfile.py +0 -0
  95. {buildz-0.6.2 → buildz-0.6.4}/buildz/pyz.py +0 -0
  96. {buildz-0.6.2 → buildz-0.6.4}/buildz/tz/__init__.py +0 -0
  97. {buildz-0.6.2 → buildz-0.6.4}/buildz/tz/myers_diff.py +0 -0
  98. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/__init__.py +0 -0
  99. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/__main__.py +0 -0
  100. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/code.py +0 -0
  101. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/code_modify.py +0 -0
  102. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/copy_old.py +0 -0
  103. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/file.py +0 -0
  104. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/base.py +0 -0
  105. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/buffer.py +0 -0
  106. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/listz.py +0 -0
  107. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/lr.py +0 -0
  108. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/lrval.py +0 -0
  109. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/mapz.py +0 -0
  110. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/nextz.py +0 -0
  111. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/reval.py +0 -0
  112. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/setz.py +0 -0
  113. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/spc.py +0 -0
  114. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/spt.py +0 -0
  115. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/deal/strz.py +0 -0
  116. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/exp.py +0 -0
  117. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/item.py +0 -0
  118. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/mg.py +0 -0
  119. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loader/pos.py +0 -0
  120. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/base.py +0 -0
  121. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/buffer.py +0 -0
  122. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/listz.py +0 -0
  123. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/lr.py +0 -0
  124. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/lrval.py +0 -0
  125. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/mapz.py +0 -0
  126. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/nextz.py +0 -0
  127. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/reval.py +0 -0
  128. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/setz.py +0 -0
  129. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/spc.py +0 -0
  130. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/spt.py +0 -0
  131. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/strz.py +0 -0
  132. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/strz_new.py +0 -0
  133. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/deal/strz_old.py +0 -0
  134. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/exp.py +0 -0
  135. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/item.py +0 -0
  136. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/mg.py +0 -0
  137. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/pos.py +0 -0
  138. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/test.py +0 -0
  139. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/loaderz/test1.py +0 -0
  140. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/mapz.py +0 -0
  141. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/read.py +0 -0
  142. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/stack.py +0 -0
  143. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/write.py +0 -0
  144. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/base.py +0 -0
  145. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/conf.py +0 -0
  146. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/deal/jsonval.py +0 -0
  147. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/deal/listz.py +0 -0
  148. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/deal/mapz.py +0 -0
  149. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/deal/reval.py +0 -0
  150. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/deal/strz.py +0 -0
  151. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/itemz.py +0 -0
  152. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/writer/mg.py +0 -0
  153. {buildz-0.6.2 → buildz-0.6.4}/buildz/xf/xargs.py +0 -0
  154. {buildz-0.6.2 → buildz-0.6.4}/buildz.egg-info/SOURCES.txt +0 -0
  155. {buildz-0.6.2 → buildz-0.6.4}/buildz.egg-info/dependency_links.txt +0 -0
  156. {buildz-0.6.2 → buildz-0.6.4}/buildz.egg-info/top_level.txt +0 -0
  157. {buildz-0.6.2 → buildz-0.6.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.2
3
+ Version: 0.6.4
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
@@ -19,6 +19,7 @@ class Base:
19
19
  def __call__(self, *args, **maps):
20
20
  return self.deal(*args, **maps)
21
21
  def deal(self, *args, **maps):
22
+ raise Exception("unexcept touch")
22
23
  return None
23
24
 
24
25
  pass
@@ -8,7 +8,7 @@ class Conf(Base):
8
8
  """
9
9
  配置文件格式:
10
10
  {
11
- id: 配置文件id,默认null
11
+ _id: 配置文件id,默认null
12
12
  //在配置文件配置的环境变量
13
13
  envs: {
14
14
  id: val
@@ -23,7 +23,7 @@ class Conf(Base):
23
23
  maps: {} // 字典入参
24
24
  }
25
25
  }
26
- namespace: 命名空间,默认null
26
+ id|namespace: 命名空间,默认null
27
27
  //本地数据配置项
28
28
  locals: [
29
29
  item_conf,
@@ -57,13 +57,17 @@ class Conf(Base):
57
57
  return id
58
58
  def map(self, arr, fc_key):
59
59
  return {fc_key(obj): obj for obj in arr}
60
+ def __str__(self):
61
+ return f"conf<id={self.namespace}, _id={self.id}>"
62
+ def __repr__(self):
63
+ return self.__str__()
60
64
  def init(self, conf, confs):
61
65
  """
62
66
  {
63
67
  deals:[{build: fc_path,args: [],maps: {}}]
64
68
  envs: {id: val}
65
- id: default null
66
- namespace: default null
69
+ _id: default null
70
+ id|namespace: default null
67
71
  datas: [{id:val, type: val, ...}]
68
72
  locals: [like datas]
69
73
  default_type: default null
@@ -71,11 +75,11 @@ class Conf(Base):
71
75
  """
72
76
  if type(conf)!=dict:
73
77
  conf = {'datas':conf}
74
- id = xf.g(conf, id=None)
78
+ id = xf.g(conf, _id=None)
75
79
  if id is None:
76
80
  id = confs.conf_id()
77
81
  self.id = id
78
- self.namespace = xf.g(conf, namespace=None)
82
+ self.namespace = xf.g1(conf, namespace=None, id=None)
79
83
  self.conf = conf
80
84
  self.confs = confs
81
85
  self.locals = self.map(xf.g(conf, locals=[]), self.confs.get_data_id)
@@ -164,13 +168,26 @@ class Conf(Base):
164
168
  return edata
165
169
  if not search_confs:
166
170
  return None
167
- return self.confs.get_data(id, self.id, src=src, info = info)
171
+ gid = self.confs.gid(self.namespace, id)
172
+ obj = self.confs.get_data(gid, self.id, src=src, info = info)
173
+ if obj is not None:
174
+ return obj
175
+ obj = self.confs.get_data(id, self.id, src=src, info = info)
176
+ return obj
168
177
  def get(self, *args, **maps):
169
178
  return self.get_obj(*args, **maps)
170
179
  def default_type(self):
171
180
  if self._default_type is None:
172
181
  return self.confs.default_type
173
182
  return self._default_type
183
+ def get_var(self, key, i = -1):
184
+ return self.confs.get_var(key, i)
185
+ def push_var(self, key, val):
186
+ return self.confs.push_var(key,val)
187
+ def has_var(self, key):
188
+ return self.confs.has_var(key)
189
+ def pop_var(self, key):
190
+ self.confs.pop_var(key)
174
191
  def get_obj(self, id, src = None, info=None, remove = False):
175
192
  """
176
193
  根据data id获取data对象,处理逻辑:根据data id查配置,根据配置的type查deal,返回deal处理过的配置
@@ -58,11 +58,12 @@ class Confs(Base):
58
58
  self.flush_env(self.envs_args)
59
59
  def build_env_args_buildz(self):
60
60
  args, maps = argx.fetch()
61
- e = xf.get(maps, e = [])
62
- env = xf.get(maps, env=[])
63
- env += e
64
- env = [k.split("=") for k in env]
65
- env = {k[0]:"=".join(k[1:]) for k in env}
61
+ env = maps
62
+ # e = xf.get(maps, e = [])
63
+ # env = xf.get(maps, env=[])
64
+ # env += e
65
+ # env = [k.split("=") for k in env]
66
+ # env = {k[0]:"=".join(k[1:]) for k in env}
66
67
  self.envs_args = env
67
68
  self.flush_env(self.envs_args)
68
69
  def build_env_args(self):
@@ -184,10 +185,10 @@ class Confs(Base):
184
185
  data_key_type: type
185
186
  // 数据配置参数是数组的时候,数据id的位置
186
187
  // default=[0,0]
187
- data_index_id: [0,0]
188
+ data_index_id: [0,1]
188
189
  // 数据配置参数是数组的时候,数据type的位置
189
190
  // default=[0,1]
190
- data_index_type: [0,1]
191
+ data_index_type: [0,0]
191
192
  // 处理deal的type字段名
192
193
  // default = 'type'
193
194
  deal_key_type: type
@@ -209,8 +210,8 @@ class Confs(Base):
209
210
  self.global_deal = xf.g(conf, global_deal = True)
210
211
  self.data_key_id = xf.g(conf, data_key_id = 'id')
211
212
  self.data_key_type = xf.g(conf, data_key_type = 'type')
212
- self.data_index_id = xf.g(conf, data_index_id = [0,0])
213
- self.data_index_type = xf.g(conf, data_index_type = [0,1])
213
+ self.data_index_id = xf.g(conf, data_index_id = [0,1])
214
+ self.data_index_type = xf.g(conf, data_index_type = [0,0])
214
215
  self.deal_key_type = xf.g(conf, deal_key_type = 'type')
215
216
  self.deal_index_type = xf.g(conf, deal_index_type = 0)
216
217
  self.env_orders = xf.g(conf, env_orders = ['sys', 'local', 'conf'])
@@ -229,8 +230,25 @@ class Confs(Base):
229
230
  self.envs = {}
230
231
  self.envs_args = None
231
232
  self.mark_init = False
233
+ self.vars = {}
232
234
  if 'args' in self.env_orders:
233
235
  self.build_env_args()
236
+ def get_var(self, key, i=-1):
237
+ if not self.has_var(key):
238
+ return None, False
239
+ return self.vars[key][i], True
240
+ def push_var(self, key, val):
241
+ if key not in self.vars:
242
+ self.vars[key] = []
243
+ self.vars[key].append(val)
244
+ def has_var(self, key):
245
+ if key not in self.vars:
246
+ return False
247
+ return len(self.vars[key])>0
248
+ def pop_var(self, key):
249
+ if not self.has_var(key):
250
+ return
251
+ self.vars[key].pop(-1)
234
252
  def do_init(self):
235
253
  if self.mark_init:
236
254
  return
@@ -267,6 +285,10 @@ class Confs(Base):
267
285
  id = self._conf_id
268
286
  self._conf_id+=1
269
287
  return id
288
+ def gid(self, cid, id):
289
+ cids = self.ids(cid)
290
+ ids = self.ids(id)
291
+ return self.id(cids+ids)
270
292
  def ids(self, id):
271
293
  if id is None:
272
294
  return []
@@ -308,7 +330,7 @@ class Confs(Base):
308
330
  if type(conf) in [bytes, str]:
309
331
  conf = self.loads(conf)
310
332
  obj = Conf(conf, self)
311
- id = xf.g(conf, namespace=None)
333
+ id = xf.g1(conf, id=None, namespace=None)
312
334
  ids = self.ids(id)
313
335
  node = self.node
314
336
  for id in ids:
@@ -383,9 +405,9 @@ class Confs(Base):
383
405
  for confs,i in arr:
384
406
  id = self.id(ids[i:])
385
407
  for conf in confs:
386
- conf = conf.get_data(id, sid==conf.id, False, src = src, info = info)
387
- if conf is not None:
388
- return conf
408
+ _conf = conf.get_data(id, sid==conf.id, False, src = src, info = info)
409
+ if _conf is not None:
410
+ return _conf
389
411
  return None
390
412
 
391
413
  pass
@@ -118,6 +118,12 @@ class FormatData(Base):
118
118
  pass
119
119
 
120
120
  class BaseDeal(Base):
121
+ def push_vars(self, conf, vars):
122
+ if vars is not None:
123
+ [conf.push_var(key,val) for key,val in vars.items()]
124
+ def pop_vars(self, conf, vars):
125
+ if vars is not None:
126
+ [conf.pop_var(key) for key in vars]
121
127
  """
122
128
  基础处理类,加了一些方便处理的方法,自己写的处理可以不用继承这个
123
129
  自己实现的处理类,要实现两个方法:__call__(self, edata:EncapeData)和remove(self, edata:EncapeData)
@@ -148,6 +154,15 @@ class BaseDeal(Base):
148
154
  return None
149
155
  return deal(edata)
150
156
  def deal(self, edata:EncapeData):
157
+ """
158
+ """
159
+ try:
160
+ return self._deal(edata)
161
+ except:
162
+ print(f"except in {self.__class__}.deal: {edata.data}")
163
+ raise
164
+ return None
165
+ def _deal(self, edata:EncapeData):
151
166
  """
152
167
  """
153
168
  return None
@@ -11,7 +11,8 @@ class CallDeal(FormatDeal):
11
11
  {
12
12
  id:id
13
13
  type:call
14
- method: import路径+"."+方法名
14
+ call|method: import路径+"."+方法名
15
+ vars: [...]
15
16
  args: [item_conf, ...]
16
17
  maps: {
17
18
  key1:item_conf,
@@ -36,14 +37,23 @@ class CallDeal(FormatDeal):
36
37
  conf = edata.conf
37
38
  data = self.format(data)
38
39
  src = edata.src
39
- method = xf.g(data, method=0)
40
- method = pyz.load(method)
40
+ method = xf.g1(data, call=0, method=0)
41
+ #method = xf.g(data, method=0)
42
+ method = self.get_obj(method, conf, src)
43
+ if type(method) in [str, bytes]:
44
+ method = pyz.load(method)
41
45
  info = edata.info
42
46
  iargs, imaps = None, None
47
+ ivars = None
43
48
  if type(info) == dict:
44
- iargs, imaps = xf.g(info, args = None, maps = None)
49
+ iargs, imaps,ivars = xf.g(info, args = None, maps = None, vars=None)
45
50
  args = xf.g(data, args=[])
46
51
  maps = xf.g(data, maps ={})
52
+ vars = xf.g(data, vars={})
53
+ vars = {k:self.get_obj(v, conf, src) for k,v in vars.items()}
54
+ if ivars is not None:
55
+ xf.fill(ivars, vars, 1)
56
+ ivars = vars
47
57
  if iargs is not None:
48
58
  args = iargs
49
59
  if imaps is not None:
@@ -52,6 +62,9 @@ class CallDeal(FormatDeal):
52
62
  # maps = {k:self.get_obj(maps[k], conf, src, info = edata.info) for k in maps}
53
63
  args = [self.get_obj(v, conf, src) for v in args]
54
64
  maps = {k:self.get_obj(maps[k], conf, src) for k in maps}
55
- return method(*args, **maps)
65
+ self.push_vars(conf, ivars)
66
+ rst = method(*args, **maps)
67
+ self.pop_vars(conf, ivars)
68
+ return rst
56
69
 
57
70
  pass
@@ -35,10 +35,11 @@ class CallsDeal(FormatDeal):
35
35
  conf = edata.conf
36
36
  data = self.format(data)
37
37
  src = edata.src
38
+ info = edata.info
38
39
  calls = xf.g1(data, calls=[], data = [])
39
40
  rst = None
40
41
  for call in calls:
41
- rst = self.get_obj(call, conf, src)
42
+ rst = self.get_obj(call, conf, src, info=info)
42
43
  return rst
43
44
 
44
45
  pass
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null}
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null}
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null}
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort:-1,
7
+ //sort:-1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null }
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -7,10 +7,10 @@
7
7
  nullable: 0,
8
8
  out: 1,
9
9
  conf: {
10
- sort: -1,
10
+ //sort: -1,
11
11
  data:[
12
- {key: id, default: null},
13
12
  {key: type, default: null}
13
+ {key: id, default: null},
14
14
  ]
15
15
  }
16
16
  },
@@ -7,10 +7,10 @@
7
7
  nullable: 0,
8
8
  out: 1,
9
9
  conf: {
10
- sort: -1,
10
+ //sort: -1,
11
11
  data:[
12
- {key: id, default: null},
13
12
  {key: type, default: null}
13
+ {key: id, default: null},
14
14
  ]
15
15
  }
16
16
  },
@@ -3,10 +3,10 @@
3
3
  nullable: 0,
4
4
  out: 1,
5
5
  conf: {
6
- sort: -1,
6
+ //sort: -1,
7
7
  data:[
8
- {key: id, default: null},
9
8
  {key: type, default: null}
9
+ {key: id, default: null},
10
10
  ]
11
11
  }
12
12
  },
@@ -3,10 +3,10 @@
3
3
  nullable: 0,
4
4
  out: 1,
5
5
  conf: {
6
- sort: -1,
6
+ //sort: -1,
7
7
  data:[
8
- {key: id, default: null},
9
8
  {key: type, default: null}
9
+ {key: id, default: null}
10
10
  ]
11
11
  }
12
12
  },
@@ -3,10 +3,10 @@
3
3
  nullable: 0,
4
4
  out: 1,
5
5
  conf: {
6
- sort: -1,
6
+ //sort: -1,
7
7
  data:[
8
- {key: id, default: null},
9
8
  {key: type, default: null}
9
+ {key: id, default: null},
10
10
  ]
11
11
  }
12
12
  },
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null}
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -4,8 +4,8 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: [
7
- {key: id, default: null},
8
7
  {key: type, default: null},
8
+ {key: id, default: null},
9
9
  {key: single, default: 1}
10
10
  ]
11
11
  },
@@ -13,14 +13,16 @@
13
13
  nullable: 0,
14
14
  key: source
15
15
  },
16
- {
17
- key: construct,
18
- default: {args: [], maps: {}},
19
- conf: [
20
- {key: args, default: []},
21
- {key: maps, default: {}}
22
- ]
23
- },
16
+ {key: args, default: []},
17
+ {key: maps, default: {}},
18
+ // {
19
+ // key: construct,
20
+ // default: {args: [], maps: {}},
21
+ // conf: [
22
+ // {key: args, default: []},
23
+ // {key: maps, default: {}}
24
+ // ]
25
+ // },
24
26
  {
25
27
  key: sets,
26
28
  default: []
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null}
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -7,10 +7,10 @@
7
7
  nullable: 0,
8
8
  out: 1,
9
9
  conf: {
10
- sort: -1,
10
+ //sort: -1,
11
11
  data:[
12
- {key: id, default: null},
13
12
  {key: type, default: null}
13
+ {key: id, default: null},
14
14
  ]
15
15
  }
16
16
  },
@@ -4,7 +4,7 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
9
  {key: id, default: null},
10
10
  {key: type, default: null}
@@ -4,10 +4,10 @@
4
4
  nullable: 0,
5
5
  out: 1,
6
6
  conf: {
7
- sort: -1,
7
+ //sort: -1,
8
8
  data:[
9
- {key: id, default: null},
10
9
  {key: type, default: null}
10
+ {key: id, default: null},
11
11
  ]
12
12
  }
13
13
  },
@@ -11,11 +11,12 @@ class EnvDeal(FormatDeal):
11
11
  {
12
12
  id: id
13
13
  type: env
14
- key: 环境变量key
14
+ env|key: 环境变量key
15
15
  default: item_conf //可选
16
16
  }
17
17
  简写:
18
- [[id, env], key]
18
+ [[id, env], key, default]
19
+ [env, key, default]
19
20
  [env, key]
20
21
  例:
21
22
  [env, path] //读取环境变量path
@@ -11,7 +11,7 @@ class MapDeal(FormatDeal):
11
11
  {
12
12
  id:id
13
13
  type:map
14
- data: {
14
+ map|data: {
15
15
  key1: item_conf,
16
16
  ...
17
17
  }
@@ -12,7 +12,8 @@ class MethodCallDeal(FormatDeal):
12
12
  id: id
13
13
  type: mcall
14
14
  source: 对象id
15
- method: 调用方法
15
+ mcall|method: 调用方法
16
+ vars: [...]
16
17
  args: [...]
17
18
  maps: {key:...}
18
19
  info: item_conf,额外引用信息,默认null
@@ -30,14 +31,15 @@ class MethodCallDeal(FormatDeal):
30
31
  super().init("MethodCallDeal", fp_lists, fp_defaults,
31
32
  join(dp, "conf", "mcall_lists.js"),
32
33
  join(dp, "conf", "mcall_defaults.js"))
33
- def deal(self, edata:EncapeData):
34
+ def _deal(self, edata:EncapeData):
34
35
  sid = edata.sid
35
36
  data = edata.data
36
37
  conf = edata.conf
37
38
  data = self.format(data)
38
39
  src = edata.src
39
- source = xf.g(data, source=None)
40
- method = xf.g(data, method=0)
40
+ source = xf.g1(data, source=None, src=None)
41
+ method = xf.g1(data, mcall=0, method=0)
42
+ #method = xf.g(data, method=0)
41
43
  info = xf.g(data, info=None)
42
44
  if info is not None:
43
45
  info = self.get_obj(info, src = edata.src, info = edata.info)
@@ -54,12 +56,20 @@ class MethodCallDeal(FormatDeal):
54
56
  raise Exception(f"not object for method {method}")
55
57
  if src is None:
56
58
  src = source
57
- method = getattr(source, method)
59
+ method = self.get_obj(method, conf, src)
60
+ if type(method) in [str, bytes]:
61
+ method = getattr(source, method)
58
62
  iargs, imaps = None, None
63
+ ivars = None
59
64
  if type(info) == dict:
60
- iargs, imaps = xf.g(info, m_args = None, m_maps = None)
65
+ iargs, imaps = xf.g(info, m_args = None, m_maps = None, vars=None)
61
66
  args = xf.g(data, args=[])
62
67
  maps = xf.g(data, maps ={})
68
+ vars = xf.g(data, vars={})
69
+ vars = {k:self.get_obj(v, conf, src) for k,v in vars.items()}
70
+ if ivars is not None:
71
+ xf.fill(ivars, vars, 1)
72
+ ivars = vars
63
73
  if iargs is not None:
64
74
  args = iargs
65
75
  if imaps is not None:
@@ -68,6 +78,9 @@ class MethodCallDeal(FormatDeal):
68
78
  # maps = {k:self.get_obj(maps[k], conf, src, edata.info) for k in maps}
69
79
  args = [self.get_obj(v, conf, src) for v in args]
70
80
  maps = {k:self.get_obj(maps[k], conf, src) for k in maps}
71
- return method(*args, **maps)
81
+ self.push_vars(conf, ivars)
82
+ rst = method(*args, **maps)
83
+ self.pop_vars(conf, ivars)
84
+ return rst
72
85
 
73
86
  pass