buildz 0.6.8__tar.gz → 0.6.10__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 (169) hide show
  1. {buildz-0.6.8/buildz.egg-info → buildz-0.6.10}/PKG-INFO +1 -1
  2. {buildz-0.6.8 → buildz-0.6.10}/buildz/__init__.py +1 -1
  3. buildz-0.6.10/buildz/base.py +55 -0
  4. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc/base.py +4 -2
  5. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc/confs.py +20 -1
  6. buildz-0.6.10/buildz/ioc/ioc_deal/branch.py +47 -0
  7. buildz-0.6.10/buildz/ioc/ioc_deal/conf/branch_lists.js +26 -0
  8. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/deals.js +5 -0
  9. {buildz-0.6.8 → buildz-0.6.10}/buildz/pyz.py +1 -1
  10. {buildz-0.6.8 → buildz-0.6.10}/buildz/tz/__init__.py +1 -1
  11. buildz-0.6.10/buildz/tz/tio/__init__.py +3 -0
  12. buildz-0.6.10/buildz/tz/tio/base.py +7 -0
  13. buildz-0.6.10/buildz/tz/tio/getch.py +23 -0
  14. buildz-0.6.10/buildz/tz/tio/lx.py +38 -0
  15. buildz-0.6.10/buildz/tz/tio/test.py +12 -0
  16. buildz-0.6.10/buildz/tz/tio/win.py +8 -0
  17. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/listmapz.py +7 -1
  18. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/readz.py +1 -1
  19. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/xargs.py +3 -1
  20. {buildz-0.6.8 → buildz-0.6.10/buildz.egg-info}/PKG-INFO +1 -1
  21. {buildz-0.6.8 → buildz-0.6.10}/buildz.egg-info/SOURCES.txt +8 -0
  22. {buildz-0.6.8 → buildz-0.6.10}/setup.py +1 -1
  23. buildz-0.6.8/buildz/base.py +0 -21
  24. {buildz-0.6.8 → buildz-0.6.10}/LICENSE +0 -0
  25. {buildz-0.6.8 → buildz-0.6.10}/MANIFEST.in +0 -0
  26. {buildz-0.6.8 → buildz-0.6.10}/README.md +0 -0
  27. {buildz-0.6.8 → buildz-0.6.10}/buildz/__main__.py +0 -0
  28. {buildz-0.6.8 → buildz-0.6.10}/buildz/argx.py +0 -0
  29. {buildz-0.6.8 → buildz-0.6.10}/buildz/cmd.py +0 -0
  30. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/__main__.py +0 -0
  31. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/dv/basez.py +0 -0
  32. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/dv/clickhousez.py +0 -0
  33. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/dv/lib/readme +0 -0
  34. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/dv/mysqlz.py +0 -0
  35. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/dv/oraclez.py +0 -0
  36. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/dv/structz.py +0 -0
  37. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/install.txt +0 -0
  38. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/run.conf +0 -0
  39. {buildz-0.6.8 → buildz-0.6.10}/buildz/db/runz.py +0 -0
  40. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/ioc/deal.py +0 -0
  41. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/ioc/help.py +0 -0
  42. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/myers/deal.py +0 -0
  43. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/myers/help.py +0 -0
  44. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/conf/ioc.js +0 -0
  45. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/conf/main.js +0 -0
  46. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/conf/myers.js +0 -0
  47. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/conf/search.js +0 -0
  48. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/conf/xf.js +0 -0
  49. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/help/default.js +0 -0
  50. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/help/ioc.js +0 -0
  51. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/help/myers.js +0 -0
  52. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/help/search.js +0 -0
  53. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/help/xf.js +0 -0
  54. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/res/test.js +0 -0
  55. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/search/deal.py +0 -0
  56. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/search/help.py +0 -0
  57. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/test.py +0 -0
  58. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/xf/deal.py +0 -0
  59. {buildz-0.6.8 → buildz-0.6.10}/buildz/demo/xf/help.py +0 -0
  60. {buildz-0.6.8 → buildz-0.6.10}/buildz/fz/__init__.py +0 -0
  61. {buildz-0.6.8 → buildz-0.6.10}/buildz/fz/dirz.py +0 -0
  62. {buildz-0.6.8 → buildz-0.6.10}/buildz/fz/fhs.py +0 -0
  63. {buildz-0.6.8 → buildz-0.6.10}/buildz/fz/fio.py +0 -0
  64. {buildz-0.6.8 → buildz-0.6.10}/buildz/fz/lsf.py +0 -0
  65. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/__init__.py +0 -0
  66. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/base.py +0 -0
  67. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/init.py +0 -0
  68. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc/conf.py +0 -0
  69. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc/single.py +0 -0
  70. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/base.py +0 -0
  71. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/call.py +0 -0
  72. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/calls.py +0 -0
  73. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  74. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  75. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  76. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  77. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  78. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  79. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  80. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/iocf_lists.js +0 -0
  81. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  82. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  83. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  84. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  85. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  86. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  87. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  88. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  89. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  90. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  91. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  92. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  93. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  94. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  95. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/deal.py +0 -0
  96. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/demo.py +0 -0
  97. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/env.py +0 -0
  98. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/ioc.py +0 -0
  99. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/iocf.py +0 -0
  100. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/join.py +0 -0
  101. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/list.py +0 -0
  102. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/map.py +0 -0
  103. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/mcall.py +0 -0
  104. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/obj.py +0 -0
  105. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/ovar.py +0 -0
  106. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/ref.py +0 -0
  107. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/val.py +0 -0
  108. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/var.py +0 -0
  109. {buildz-0.6.8 → buildz-0.6.10}/buildz/ioc/ioc_deal/xfile.py +0 -0
  110. {buildz-0.6.8 → buildz-0.6.10}/buildz/tools.py +0 -0
  111. {buildz-0.6.8 → buildz-0.6.10}/buildz/tz/myers_diff.py +0 -0
  112. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/__init__.py +0 -0
  113. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/__main__.py +0 -0
  114. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/code.py +0 -0
  115. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/code_modify.py +0 -0
  116. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/copy_old.py +0 -0
  117. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/file.py +0 -0
  118. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/base.py +0 -0
  119. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/buffer.py +0 -0
  120. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/listz.py +0 -0
  121. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/lr.py +0 -0
  122. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/lrval.py +0 -0
  123. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/mapz.py +0 -0
  124. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/nextz.py +0 -0
  125. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/reval.py +0 -0
  126. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/setz.py +0 -0
  127. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/spc.py +0 -0
  128. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/spt.py +0 -0
  129. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/deal/strz.py +0 -0
  130. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/exp.py +0 -0
  131. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/item.py +0 -0
  132. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/mg.py +0 -0
  133. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loader/pos.py +0 -0
  134. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/base.py +0 -0
  135. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/buffer.py +0 -0
  136. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/listz.py +0 -0
  137. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/lr.py +0 -0
  138. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/lrval.py +0 -0
  139. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/mapz.py +0 -0
  140. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/nextz.py +0 -0
  141. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/reval.py +0 -0
  142. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/setz.py +0 -0
  143. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/spc.py +0 -0
  144. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/spt.py +0 -0
  145. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/strz.py +0 -0
  146. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/strz_new.py +0 -0
  147. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/deal/strz_old.py +0 -0
  148. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/exp.py +0 -0
  149. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/item.py +0 -0
  150. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/mg.py +0 -0
  151. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/pos.py +0 -0
  152. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/test.py +0 -0
  153. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/loaderz/test1.py +0 -0
  154. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/mapz.py +0 -0
  155. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/read.py +0 -0
  156. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/stack.py +0 -0
  157. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/write.py +0 -0
  158. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/base.py +0 -0
  159. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/conf.py +0 -0
  160. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/deal/jsonval.py +0 -0
  161. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/deal/listz.py +0 -0
  162. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/deal/mapz.py +0 -0
  163. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/deal/reval.py +0 -0
  164. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/deal/strz.py +0 -0
  165. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/itemz.py +0 -0
  166. {buildz-0.6.8 → buildz-0.6.10}/buildz/xf/writer/mg.py +0 -0
  167. {buildz-0.6.8 → buildz-0.6.10}/buildz.egg-info/dependency_links.txt +0 -0
  168. {buildz-0.6.8 → buildz-0.6.10}/buildz.egg-info/top_level.txt +0 -0
  169. {buildz-0.6.8 → buildz-0.6.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.8
3
+ Version: 0.6.10
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
@@ -6,4 +6,4 @@ __version__="0.4.91"
6
6
  __author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
7
7
 
8
8
  from .argx import fetch as args
9
- from .base import Base
9
+ from .base import Base, WBase
@@ -0,0 +1,55 @@
1
+ #coding=utf-8
2
+ from . import pyz
3
+ class Base:
4
+ def str(self):
5
+ return str(self.__class__)
6
+ def __str__(self):
7
+ return self.str()
8
+ def __repr__(self):
9
+ return self.__str__()
10
+ def __init__(self, *args, **maps):
11
+ self.init(*args, **maps)
12
+ def __call__(self, *args, **maps):
13
+ return self.call(*args, **maps)
14
+ def init(self, *args, **maps):
15
+ pass
16
+ def call(self, *args, **maps):
17
+ return self.deal(*args, **maps)
18
+ def deal(self, *args, **maps):
19
+ return None
20
+
21
+ pass
22
+
23
+ class WBase(Base):
24
+ def _open(self):
25
+ pass
26
+ def open(self):
27
+ self._open()
28
+ return pyz.with_out(self.close, True)
29
+ def _close(self):
30
+ pass
31
+ def close(self, exc_type, exc_val, exc_tb):
32
+ self._close()
33
+
34
+ pass
35
+
36
+ class With(Base):
37
+ def init(self, args=False):
38
+ self.args = args
39
+ def call(self, cls):
40
+ def _open(obj):
41
+ pass
42
+ def open(obj):
43
+ obj._open()
44
+ return pyz.with_out(obj.close, self.args)
45
+ def _close(obj):
46
+ pass
47
+ def close(obj):
48
+ obj._close()
49
+ cls._open = _open
50
+ cls._close = _close
51
+ cls.open = open
52
+ cls.close = close
53
+ return cls
54
+
55
+ pass
@@ -40,10 +40,12 @@ class EncapeData(Base):
40
40
  info: 额外的调用信息,目前只有object会用到里面的id字段,作为单例额外输入
41
41
  """
42
42
  if typez(data)==dict:
43
- pid = xf.g1(data, parent=None)
43
+ pid = xf.g1(data, parent=None, template=None, temp=None)
44
44
  if pid is not None:
45
45
  data = dict(data)
46
- del data['parent']
46
+ for pkey in "parent,temp,template".split(","):
47
+ if pkey in data:
48
+ del data[pkey]
47
49
  pids = pid
48
50
  if typez(pids)!=list:
49
51
  pids = [pid]
@@ -53,7 +53,9 @@ class Confs(Base):
53
53
  return sysdt
54
54
  def build_env_args_xf(self):
55
55
  data = xf.args()
56
- env = data['env']
56
+ if xf.is_args(data):
57
+ data = data.maps
58
+ env = xf.g(data, env={})
57
59
  self.envs_args = env
58
60
  self.flush_env(self.envs_args)
59
61
  def build_env_args_buildz(self):
@@ -83,6 +85,7 @@ class Confs(Base):
83
85
  return None
84
86
  def get_env_maps(self, id, maps):
85
87
  ids = self.env_ids(id)
88
+ #print(f"[TZBZ] get_env_maps({id})[{ids}] in {maps}")
86
89
  envs = maps
87
90
  for id in ids:
88
91
  if type(envs)!=dict:
@@ -95,10 +98,23 @@ class Confs(Base):
95
98
  return envs
96
99
  def get_env_conf(self, id, sid=None):
97
100
  return self.get_env_maps(id, self.envs)
101
+ def enable_args(self, enable = True):
102
+ key = "args"
103
+ if enable:
104
+ if key in self.env_orders:
105
+ return
106
+ self.env_orders = [key]+self.env_orders
107
+ else:
108
+ if key not in self.env_orders:
109
+ return
110
+ self.env_orders.remove(key)
111
+ def set_args_type(self, args_type):
112
+ self.args_type = args_type
98
113
  def get_env(self, id, sid=None):
99
114
  for key in self.env_orders:
100
115
  fc = self.env_fcs[key]
101
116
  obj = fc(id, sid)
117
+ #print(f"[TZBZ] get_env.{key}.{fc}({id}, {sid}): {obj}")
102
118
  if obj is not None:
103
119
  return obj
104
120
  return None
@@ -120,6 +136,9 @@ class Confs(Base):
120
136
  break
121
137
  envs = envs[id]
122
138
  return envs
139
+ def set_envs(self, maps):
140
+ self.flush_env(maps)
141
+ self.update_env(maps)
123
142
  def set_env(self, id, val):
124
143
  obj = {id:val}
125
144
  self.flush_env(obj)
@@ -0,0 +1,47 @@
1
+ #
2
+ from ..ioc.base import Base, EncapeData,IOCError
3
+ from .base import FormatData,FormatDeal
4
+ from buildz import xf, pyz
5
+ import os
6
+ dp = os.path.dirname(__file__)
7
+ join = os.path.join
8
+ class BranchDeal(FormatDeal):
9
+ """
10
+ 分支branch:
11
+ {
12
+ id: id
13
+ type: branch
14
+ judge: item_conf
15
+ vals: {
16
+ judge_val: item_conf
17
+ ...
18
+ }
19
+ default(optional): item_conf
20
+ }
21
+ 简写:
22
+ [[id, branch], judge, {vals}, default]
23
+ [branch, judge, {vals}, default]
24
+ [branch, judge, {vals}]
25
+ 例:
26
+ [branch, [env, env.test], {true:..., false: ...}]
27
+ """
28
+ def init(self, fp_lists=None, fp_defaults=None):
29
+ super().init("BranchDeal", fp_lists, fp_defaults, join(dp, "conf", "branch_lists.js"), None)
30
+ def deal(self, edata:EncapeData):
31
+ data = edata.data
32
+ data = self.fill(data)
33
+ judge = xf.get_first(data, 'judge', 'key', 'var')
34
+ judge = self.get_obj(judge, edata.conf, edata.src, edata.info)
35
+ vals = xf.get_first(data, 'vals', 'data', 'datas')
36
+ val = None
37
+ if judge in vals:
38
+ val = vals[judge]
39
+ val = self.get_obj(val, edata.conf, edata.src, edata.info)
40
+ return val
41
+ if 'default' not in data:
42
+ raise IOCError(f"<branch> not any vals match '{judeg}'")
43
+ default = data['default']
44
+ val = self.get_obj(default, edata.conf, edata.src, edata.info)
45
+ return val
46
+
47
+ pass
@@ -0,0 +1,26 @@
1
+ // [[id, type], key]
2
+ [
3
+ {
4
+ nullable: 0,
5
+ out: 1,
6
+ conf: {
7
+ //sort:-1,
8
+ data:[
9
+ {key: type, default: null }
10
+ {key: id, default: null},
11
+ ]
12
+ }
13
+ },
14
+ {
15
+ nullable: 0,
16
+ key: judge
17
+ },
18
+ {
19
+ nullable: 0,
20
+ key: vals
21
+ },
22
+ {
23
+ nullable: 1,
24
+ key: default
25
+ }
26
+ ]
@@ -82,6 +82,11 @@
82
82
  type: iocf,
83
83
  note: 加配置文件,
84
84
  build: buildz.ioc.ioc_deal.iocf.IOCFObjectDeal
85
+ },
86
+ {
87
+ type: branch,
88
+ note: 条件配置,
89
+ build: buildz.ioc.ioc_deal.branch.BranchDeal
85
90
  }
86
91
  ]
87
92
  }
@@ -3,7 +3,7 @@ import sys
3
3
  import os
4
4
  import hashlib
5
5
  import inspect
6
- from .base import Base
6
+ #from .base import Base, WBase
7
7
  class With:
8
8
  def __init__(self, fc_in, fc_out, args = False):
9
9
  self.fc_in = fc_in
@@ -3,7 +3,7 @@
3
3
 
4
4
  # 文件差异
5
5
  from .myers_diff import update as m_update, myers as m_steps, encode as m_encode, decode as m_decode,count as m_count
6
-
6
+ from .tio import *
7
7
  """
8
8
  工具模块
9
9
  toolz简写成tz
@@ -0,0 +1,3 @@
1
+ #coding=utf-8
2
+
3
+ from .getch import getch
@@ -0,0 +1,7 @@
1
+ #coding=utf-8
2
+ from buildz.base import Base, WBase, With
3
+ @With(False)
4
+ class Getch(Base):
5
+ pass
6
+
7
+ pass
@@ -0,0 +1,23 @@
1
+ #coding=utf-8
2
+
3
+ from buildz import pyz
4
+ getch = None
5
+ if pyz.is_windows:
6
+ from . import win
7
+ getch = win.Getch()
8
+ else:
9
+ from . import lx
10
+ getch = lx.Getch()
11
+
12
+ pass
13
+ def open():
14
+ global getch
15
+ return getch.open()
16
+
17
+ pass
18
+
19
+ def close():
20
+ global getch
21
+ getch.close()
22
+
23
+ pass
@@ -0,0 +1,38 @@
1
+ #coding=utf-8
2
+ from . import base
3
+ import termios
4
+ import sys
5
+ import ctypes
6
+ import select
7
+ std = ctypes.cdll.LoadLibrary(None)
8
+ class Getch(base.Getch):
9
+ def __init__(self, timeout =0.01, cnt = 3):
10
+ attr = termios.tcgetattr(sys.stdin.fileno())
11
+ bak = list(attr)
12
+ attr[3] = attr[3] & ~(termios.ICANON|termios.ECHO)
13
+ self.bak = bak
14
+ self.attr = attr
15
+ self.sec = timeout
16
+ self.cnt = cnt
17
+ def _open(self):
18
+ termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, self.attr)
19
+ def _close(self):
20
+ termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, self.bak)
21
+ def call(self):
22
+ c = std.getchar()
23
+ if c==27:
24
+ next = False
25
+ # 没用
26
+ for i in range(self.cnt):
27
+ a,_b,_c = select.select([sys.stdin.fileno()], [], [], self.sec)
28
+ if len(a)>0:
29
+ next = True
30
+ break
31
+ if next:
32
+ rst = [c]
33
+ rst.append(std.getchar())
34
+ rst.append(std.getchar())
35
+ return rst
36
+ return c
37
+
38
+ pass
@@ -0,0 +1,12 @@
1
+ #coding=utf-8
2
+
3
+ from buildz.tz import getch
4
+ getch.init()
5
+ while True:
6
+ c = getch()
7
+ print(f"getch: {c}")
8
+ if c==b'q'[0]:
9
+ break
10
+
11
+ pass
12
+ getch.close()
@@ -0,0 +1,8 @@
1
+ #coding=utf-8
2
+ import ctypes
3
+ from . import base
4
+ class Getch(base.Getch):
5
+ def call(self):
6
+ return ctypes.cdll.msvcrt._getch()
7
+
8
+ pass
@@ -15,8 +15,9 @@ class ListMapDeal(lr.LRDeal):
15
15
  """
16
16
  分隔符,有分隔符后将缓存的数据当作字符串
17
17
  """
18
- def init(self, left, right):
18
+ def init(self, left, right, as_map = False):
19
19
  super().init(left, right, "listmap")
20
+ self.as_map = as_map
20
21
  def types(self):
21
22
  return ['list']
22
23
  def build(self, obj):
@@ -48,6 +49,11 @@ class ListMapDeal(lr.LRDeal):
48
49
  lst.append(obj.val)
49
50
  i+=1
50
51
  if len(mp)==0:
52
+ if self.as_map:
53
+ if len(lst)==0:
54
+ return item.Item(mp, type="map", is_val=1)
55
+ else:
56
+ return item.Item(Args(lst, mp), type='args', is_val=1)
51
57
  return item.Item(lst, type="list", is_val=1)
52
58
  elif len(lst)==0:
53
59
  return item.Item(mp, type="map", is_val=1)
@@ -96,7 +96,7 @@ def build_args(as_bytes=False):
96
96
  # mgs.add(mapz.MapDeal("{", "}"))
97
97
  mgs.add(listmapz.ListMapDeal("(", ")"))
98
98
  mgs.add(listmapz.ListMapDeal("[", "]"))
99
- mgs.add(listmapz.ListMapDeal("{", "}"))
99
+ mgs.add(listmapz.ListMapDeal("{", "}", True))
100
100
  build_val(mgs)
101
101
  #1,0,0,1: 没引号当r"..."
102
102
  #1,0,1,1: 没引导当"..."
@@ -1,5 +1,6 @@
1
1
  #coding=utf-8
2
- from .read import loads
2
+ #from .read import loads
3
+ from .readz import loads, loadx
3
4
  import sys
4
5
  def fetch(argv = None):
5
6
  if argv is None:
@@ -7,6 +8,7 @@ def fetch(argv = None):
7
8
  argv = [str(k) for k in argv]
8
9
  s = " ".join(argv)
9
10
  s = s.strip()
11
+ return loadx(s, True)
10
12
  lrs = [["",""]]
11
13
  if len(s)==0:
12
14
  return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.6.8
3
+ Version: 0.6.10
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
@@ -56,6 +56,7 @@ buildz/ioc/ioc/conf.py
56
56
  buildz/ioc/ioc/confs.py
57
57
  buildz/ioc/ioc/single.py
58
58
  buildz/ioc/ioc_deal/base.py
59
+ buildz/ioc/ioc_deal/branch.py
59
60
  buildz/ioc/ioc_deal/call.py
60
61
  buildz/ioc/ioc_deal/calls.py
61
62
  buildz/ioc/ioc_deal/deal.py
@@ -73,6 +74,7 @@ buildz/ioc/ioc_deal/ref.py
73
74
  buildz/ioc/ioc_deal/val.py
74
75
  buildz/ioc/ioc_deal/var.py
75
76
  buildz/ioc/ioc_deal/xfile.py
77
+ buildz/ioc/ioc_deal/conf/branch_lists.js
76
78
  buildz/ioc/ioc_deal/conf/call_defaults.js
77
79
  buildz/ioc/ioc_deal/conf/call_lists.js
78
80
  buildz/ioc/ioc_deal/conf/calls_defaults.js
@@ -98,6 +100,12 @@ buildz/ioc/ioc_deal/conf/xfile_defaults.js
98
100
  buildz/ioc/ioc_deal/conf/xfile_lists.js
99
101
  buildz/tz/__init__.py
100
102
  buildz/tz/myers_diff.py
103
+ buildz/tz/tio/__init__.py
104
+ buildz/tz/tio/base.py
105
+ buildz/tz/tio/getch.py
106
+ buildz/tz/tio/lx.py
107
+ buildz/tz/tio/test.py
108
+ buildz/tz/tio/win.py
101
109
  buildz/xf/__init__.py
102
110
  buildz/xf/__main__.py
103
111
  buildz/xf/code.py
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.6.8',
10
+ version = '0.6.10',
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,21 +0,0 @@
1
- #coding=utf-8
2
-
3
- class Base:
4
- def str(self):
5
- return str(self.__class__)
6
- def __str__(self):
7
- return self.str()
8
- def __repr__(self):
9
- return self.__str__()
10
- def __init__(self, *args, **maps):
11
- self.init(*args, **maps)
12
- def __call__(self, *args, **maps):
13
- return self.call(*args, **maps)
14
- def init(self, *args, **maps):
15
- pass
16
- def call(self, *args, **maps):
17
- return self.deal(*args, **maps)
18
- def deal(self, *args, **maps):
19
- return None
20
-
21
- pass
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