buildz 0.5.4__tar.gz → 0.5.6__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 (139) hide show
  1. {buildz-0.5.4/buildz.egg-info → buildz-0.5.6}/PKG-INFO +1 -1
  2. {buildz-0.5.4 → buildz-0.5.6}/buildz/fz/__init__.py +1 -1
  3. {buildz-0.5.4 → buildz-0.5.6}/buildz/fz/fio.py +12 -2
  4. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/deals.js +5 -0
  5. buildz-0.5.4/buildz/ioc/ioc_deal/conf/ref_lists.js → buildz-0.5.6/buildz/ioc/ioc_deal/conf/iocf_lists.js +1 -5
  6. buildz-0.5.6/buildz/ioc/ioc_deal/conf/ref_lists.js +31 -0
  7. buildz-0.5.6/buildz/ioc/ioc_deal/iocf.py +59 -0
  8. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/map.py +1 -1
  9. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/obj.py +6 -3
  10. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/ref.py +4 -2
  11. {buildz-0.5.4 → buildz-0.5.6}/buildz/pyz.py +10 -0
  12. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/file.py +3 -1
  13. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/lrval.py +3 -1
  14. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/strz.py +1 -1
  15. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/mg.py +1 -1
  16. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/mapz.py +20 -3
  17. {buildz-0.5.4 → buildz-0.5.6/buildz.egg-info}/PKG-INFO +1 -1
  18. {buildz-0.5.4 → buildz-0.5.6}/buildz.egg-info/SOURCES.txt +2 -0
  19. {buildz-0.5.4 → buildz-0.5.6}/setup.py +1 -1
  20. {buildz-0.5.4 → buildz-0.5.6}/LICENSE +0 -0
  21. {buildz-0.5.4 → buildz-0.5.6}/MANIFEST.in +0 -0
  22. {buildz-0.5.4 → buildz-0.5.6}/README.md +0 -0
  23. {buildz-0.5.4 → buildz-0.5.6}/buildz/__init__.py +0 -0
  24. {buildz-0.5.4 → buildz-0.5.6}/buildz/__main__.py +0 -0
  25. {buildz-0.5.4 → buildz-0.5.6}/buildz/argx.py +0 -0
  26. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/ioc/deal.py +0 -0
  27. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/ioc/help.py +0 -0
  28. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/myers/deal.py +0 -0
  29. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/myers/help.py +0 -0
  30. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/conf/ioc.js +0 -0
  31. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/conf/main.js +0 -0
  32. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/conf/myers.js +0 -0
  33. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/conf/search.js +0 -0
  34. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/conf/xf.js +0 -0
  35. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/help/default.js +0 -0
  36. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/help/ioc.js +0 -0
  37. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/help/myers.js +0 -0
  38. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/help/search.js +0 -0
  39. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/help/xf.js +0 -0
  40. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/res/test.js +0 -0
  41. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/search/deal.py +0 -0
  42. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/search/help.py +0 -0
  43. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/test.py +0 -0
  44. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/xf/deal.py +0 -0
  45. {buildz-0.5.4 → buildz-0.5.6}/buildz/demo/xf/help.py +0 -0
  46. {buildz-0.5.4 → buildz-0.5.6}/buildz/fz/dirz.py +0 -0
  47. {buildz-0.5.4 → buildz-0.5.6}/buildz/fz/lsf.py +0 -0
  48. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/__init__.py +0 -0
  49. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/base.py +0 -0
  50. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/init.py +0 -0
  51. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc/base.py +0 -0
  52. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc/conf.py +0 -0
  53. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc/confs.py +0 -0
  54. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/base.py +0 -0
  55. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/call.py +0 -0
  56. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/calls.py +0 -0
  57. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  58. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  59. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  60. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  61. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
  62. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  63. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  64. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  65. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  66. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  67. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  68. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  69. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  70. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  71. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  72. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  73. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  74. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  75. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
  76. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
  77. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/deal.py +0 -0
  78. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/demo.py +0 -0
  79. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/env.py +0 -0
  80. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/ioc.py +0 -0
  81. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/join.py +0 -0
  82. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/list.py +0 -0
  83. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/mcall.py +0 -0
  84. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/ovar.py +0 -0
  85. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/val.py +0 -0
  86. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/var.py +0 -0
  87. {buildz-0.5.4 → buildz-0.5.6}/buildz/ioc/ioc_deal/xfile.py +0 -0
  88. {buildz-0.5.4 → buildz-0.5.6}/buildz/tz/__init__.py +0 -0
  89. {buildz-0.5.4 → buildz-0.5.6}/buildz/tz/myers_diff.py +0 -0
  90. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/__init__.py +0 -0
  91. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/__main__.py +0 -0
  92. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/base.py +0 -0
  93. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/buffer.py +0 -0
  94. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/listz.py +0 -0
  95. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/lr.py +0 -0
  96. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/lrval.py +0 -0
  97. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/mapz.py +0 -0
  98. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/nextz.py +0 -0
  99. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/reval.py +0 -0
  100. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/setz.py +0 -0
  101. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/spc.py +0 -0
  102. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/spt.py +0 -0
  103. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/deal/strz.py +0 -0
  104. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/exp.py +0 -0
  105. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/item.py +0 -0
  106. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/mg.py +0 -0
  107. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loader/pos.py +0 -0
  108. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/base.py +0 -0
  109. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/buffer.py +0 -0
  110. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/listz.py +0 -0
  111. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/lr.py +0 -0
  112. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/mapz.py +0 -0
  113. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/nextz.py +0 -0
  114. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/reval.py +0 -0
  115. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/setz.py +0 -0
  116. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/spc.py +0 -0
  117. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/deal/spt.py +0 -0
  118. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/exp.py +0 -0
  119. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/item.py +0 -0
  120. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/pos.py +0 -0
  121. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/test.py +0 -0
  122. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/loaderz/test1.py +0 -0
  123. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/read.py +0 -0
  124. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/readz.py +0 -0
  125. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/stack.py +0 -0
  126. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/write.py +0 -0
  127. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/base.py +0 -0
  128. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/conf.py +0 -0
  129. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/deal/jsonval.py +0 -0
  130. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/deal/listz.py +0 -0
  131. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/deal/mapz.py +0 -0
  132. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/deal/reval.py +0 -0
  133. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/deal/strz.py +0 -0
  134. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/itemz.py +0 -0
  135. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/writer/mg.py +0 -0
  136. {buildz-0.5.4 → buildz-0.5.6}/buildz/xf/xargs.py +0 -0
  137. {buildz-0.5.4 → buildz-0.5.6}/buildz.egg-info/dependency_links.txt +0 -0
  138. {buildz-0.5.4 → buildz-0.5.6}/buildz.egg-info/top_level.txt +0 -0
  139. {buildz-0.5.4 → buildz-0.5.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.5.4
3
+ Version: 0.5.6
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)
5
5
  Home-page: https://github.com/buildCodeZ/buildz
6
6
  Author: Zzz
@@ -2,6 +2,6 @@
2
2
  #author:
3
3
  from .dirz import dirs, FileDeal
4
4
  from .lsf import lists, search
5
- from .fio import fread, freads, fwrite, fwrites, read,reads,write,writes
5
+ from .fio import fread, freads, fwrite, fwrites, read,reads,write,writes, makefdir
6
6
 
7
7
  __author__ = "Zzz, emails: 1174534295@qq.com, 1309458652@qq.com"
@@ -1,5 +1,5 @@
1
1
  #coding=utf-8
2
-
2
+ import os
3
3
  """
4
4
  读写文件再简化
5
5
  """
@@ -32,4 +32,14 @@ def fwrites(cts, fp, mode = 'wb'):
32
32
  f.write(ct)
33
33
 
34
34
  pass
35
- writes = fwrites
35
+ writes = fwrites
36
+
37
+ def makefdir(fp):
38
+ fp = os.path.abspath(fp)
39
+ dp = os.path.dirname(fp)
40
+ if os.path.isdir(dp):
41
+ return
42
+ os.makedirs(dp)
43
+
44
+ pass
45
+
@@ -77,6 +77,11 @@
77
77
  type: deal,
78
78
  note: 扩展的自定义deal方法,
79
79
  build: buildz.ioc.ioc_deal.deal.DealDeal
80
+ },
81
+ {
82
+ type: iocf,
83
+ note: 加配置文件,
84
+ build: buildz.ioc.ioc_deal.iocf.IOCFObjectDeal
80
85
  }
81
86
  ]
82
87
  }
@@ -16,11 +16,7 @@
16
16
  },
17
17
  {
18
18
  nullable: 0,
19
- key: key
20
- },
21
- {
22
- nullable: 1,
23
- key: info
19
+ key: filepath
24
20
  }
25
21
  ]
26
22
  }
@@ -0,0 +1,31 @@
1
+ // [[id, type], key]
2
+ // [type, key]
3
+ {
4
+ sort: 1
5
+ data: [
6
+ {
7
+ nullable: 0,
8
+ out: 1,
9
+ conf: {
10
+ sort: -1,
11
+ data:[
12
+ {key: id, default: null},
13
+ {key: type, default: null}
14
+ ]
15
+ }
16
+ },
17
+ {
18
+ nullable: 0,
19
+ key: key
20
+ },
21
+ {
22
+ nullable: 1,
23
+ key: info
24
+ conf: {
25
+ data: [
26
+ {key: lid, default: null}
27
+ ]
28
+ }
29
+ }
30
+ ]
31
+ }
@@ -0,0 +1,59 @@
1
+ #coding=utf-8
2
+ from ..ioc.base import Base, EncapeData
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 IOCFObjectDeal(FormatDeal):
9
+ """
10
+ iocf字段ioc:
11
+ {
12
+ id:id
13
+ type: iocf
14
+
15
+ filepath: item_conf
16
+ // or
17
+ folder: item_conf
18
+ pattern: item_conf
19
+ }
20
+ 简写:
21
+ [[id, ioc], filepath]
22
+ 例:
23
+ [iocf, filepath] //
24
+ """
25
+ def init(self, fp_lists=None, fp_defaults=None):
26
+ self.fps = set()
27
+ self.ids = set()
28
+ super().init("IOCFObjectDeal", fp_lists, fp_defaults, join(dp, "conf", "iocf_lists.js"), None)
29
+ def deal(self, edata:EncapeData):
30
+ data = edata.data
31
+ id = xf.g(data, id = None)
32
+ data = self.fill(data)
33
+ if id is not None:
34
+ if id in self.ids:
35
+ return None
36
+ else:
37
+ self.ids.add(id)
38
+ fp = xf.g(data, filepath = None)
39
+ fdir = xf.g(data, folder = None)
40
+ pt = xf.g(data, pattern = None)
41
+ if fp is None:
42
+ if fdir is None:
43
+ raise Exception("filepath can't be null")
44
+ else:
45
+ fdir = self.get_obj(fdir, edata.conf)
46
+ if pt is not None:
47
+ pt = self.get_obj(pt, edata.conf)
48
+ fps = fz.search(fdir, pt)
49
+ else:
50
+ fp = self.get_obj(fp, edata.conf)
51
+ fps = [fp]
52
+ fps = [k for k in fps if k not in self.fps]
53
+ if len(fps)==0:
54
+ return None
55
+ edata.conf.confs.add_fps(fps)
56
+ self.fps.update(fp)
57
+ return None
58
+
59
+ pass
@@ -29,7 +29,7 @@ class MapDeal(FormatDeal):
29
29
  conf = edata.conf
30
30
  data = self.fill(data)
31
31
  maps = xf.g(data, data={})
32
- rst = {k:self.get_obj(map[k], conf, edata.src, edata.info) for k in maps}
32
+ rst = {k:self.get_obj(maps[k], conf, edata.src, edata.info) for k in maps}
33
33
  return rst
34
34
 
35
35
  pass
@@ -102,16 +102,18 @@ class ObjectDeal(FormatDeal):
102
102
  single = 1
103
103
  ids = None
104
104
  if single or cid is not None:
105
- if single:
106
- ids = [sid, id]
105
+ if cid is not None:
106
+ ids = [sid, 'local_id', id, cid]
107
107
  else:
108
- ids = [sid, id, cid]
108
+ ids = [sid, 'single', id]
109
109
  if ids is not None:
110
110
  obj = xf.gets(self.singles, ids)
111
111
  if obj is not None:
112
112
  #raise IOCError(f"null for {ids}")
113
113
  return obj
114
114
  source = xf.g(data, source=0)
115
+ if source == 0:
116
+ raise Exception(f"define object without 'source' key, {data}")
115
117
  fc = xf.get(self.sources, source, None)
116
118
  if fc is None:
117
119
  fc = pyz.load(source)
@@ -131,6 +133,7 @@ class ObjectDeal(FormatDeal):
131
133
  xf.sets(self.singles, ids, obj)
132
134
  prev_call = xf.g(data, prev_call=None)
133
135
  if prev_call is not None:
136
+ # TODO: 这边info透传好像会有问题
134
137
  self.get_obj(prev_call, conf, obj, edata.info)
135
138
  sets = xf.g(data, sets=[])
136
139
  for kv in sets:
@@ -28,8 +28,10 @@ class RefDeal(FormatDeal):
28
28
  data = self.fill(data)
29
29
  key = data['key']
30
30
  info = xf.g(data, info=None)
31
- if info is not None:
32
- info = self.get_obj(info, src = edata.src)
31
+ if info is not None and type(info)==dict:
32
+ #info = {k:self.get_obj(info, edata.conf, src = edata.src) for k in info}
33
+ info = {'type':'map', 'data':info}
34
+ info = self.get_obj(info, edata.conf, src = edata.src)
33
35
  return edata.conf.get_obj(key, info = info, src = edata.src)
34
36
 
35
37
  pass
@@ -1,6 +1,16 @@
1
1
 
2
2
  import sys
3
3
  import os
4
+ def test_current(fp, up = 1):
5
+ """
6
+ 将当前目录的上{up}层目录加入sys.path,这样可以在同层写测试代码,但是import还是要当在上{up}层做import
7
+ """
8
+ dp = os.path.dirname(os.path.abspath(fp))
9
+ for i in range(up):
10
+ dp = os.path.dirname(dp)
11
+ sys.path.insert(0, dp)
12
+
13
+ pass
4
14
  def load(md, fc = None):
5
15
  """
6
16
  import object(whether module or others) from md(or md.fc)
@@ -1,7 +1,9 @@
1
1
  #coding=utf-8
2
-
2
+ import os
3
3
  coding="utf-8"
4
4
  def bread(filepath):
5
+ if type(filepath) not in [str, bytes, os.PathLike]:
6
+ raise Exception(f"error filepath: {filepath}")
5
7
  with open(filepath, 'rb') as file:
6
8
  s = file.read()
7
9
  return s
@@ -32,9 +32,11 @@ class LRValDeal(lr.LRDeal):
32
32
  rst.append(_item.val)
33
33
  try:
34
34
  val = self.fc(rst[0], rst[1])
35
- except Exception as exp1:
35
+ except Exceptin as exp1:
36
36
  print("exp:", exp1)
37
37
  raise Exception(f"error in lrval fc: {self.fc}({rst}): {exp1} ")
38
38
  return item.Item(val, type='val', is_val = 1)
39
+ def build_arr(self, obj):
40
+ return self.build(obj)
39
41
 
40
42
  pass
@@ -52,7 +52,7 @@ class PrevStrDeal(lr.LRDeal):
52
52
  return False
53
53
  rm = buffer.full().strip()
54
54
  buffer.clean2read(self.ll)
55
- if len(rm)>0 and not self.note:
55
+ if len(rm)>0:
56
56
  if not self.note:
57
57
  print("left:", self.left, rm)
58
58
  print(f"rst: [{rst}]")
@@ -63,7 +63,7 @@ class Manager:
63
63
  rst = deal.build(obj)
64
64
  if rst is not None:
65
65
  return rst
66
- raise Exception("unspt deal type:"+_type)
66
+ raise Exception(f"unspt deal type:[{obj}]")
67
67
  def deal(self, buffer, arr):
68
68
  c = buffer.read()
69
69
  if len(c)==0 and buffer.size()==0:
@@ -1,6 +1,8 @@
1
1
 
2
- def get(obj, key, default=None):
2
+ def get(obj, key, default=None, set = False):
3
3
  if key not in obj:
4
+ if set:
5
+ obj[key] = default
4
6
  return default
5
7
  return obj[key]
6
8
 
@@ -48,6 +50,20 @@ def g(obj, **maps):
48
50
  rst = rst[0]
49
51
  return rst
50
52
 
53
+ pass
54
+ def gs(obj, **maps):
55
+ rst = []
56
+ for k in maps:
57
+ v = maps[k]
58
+ if k in obj:
59
+ v = obj[k]
60
+ else:
61
+ obj[k] = v
62
+ rst.append(v)
63
+ if len(rst)==1:
64
+ rst = rst[0]
65
+ return rst
66
+
51
67
  pass
52
68
  def s(obj, **maps):
53
69
  for k in maps:
@@ -110,7 +126,7 @@ pass
110
126
  def deep_update(target, src, replace=1):
111
127
  """
112
128
  dict深层更新,src[key]是dict就深入更新,否则:
113
- src有而maps没有就替换,否则:
129
+ src有而target没有就替换,否则:
114
130
  replace=1就替换
115
131
  """
116
132
  for k in src:
@@ -125,4 +141,5 @@ def deep_update(target, src, replace=1):
125
141
  if replace:
126
142
  target[k] = val
127
143
 
128
- pass
144
+ pass
145
+ update = deep_update
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buildz
3
- Version: 0.5.4
3
+ Version: 0.5.6
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)
5
5
  Home-page: https://github.com/buildCodeZ/buildz
6
6
  Author: Zzz
@@ -47,6 +47,7 @@ buildz/ioc/ioc_deal/deal.py
47
47
  buildz/ioc/ioc_deal/demo.py
48
48
  buildz/ioc/ioc_deal/env.py
49
49
  buildz/ioc/ioc_deal/ioc.py
50
+ buildz/ioc/ioc_deal/iocf.py
50
51
  buildz/ioc/ioc_deal/join.py
51
52
  buildz/ioc/ioc_deal/list.py
52
53
  buildz/ioc/ioc_deal/map.py
@@ -65,6 +66,7 @@ buildz/ioc/ioc_deal/conf/deal_lists.js
65
66
  buildz/ioc/ioc_deal/conf/deals.js
66
67
  buildz/ioc/ioc_deal/conf/env_lists.js
67
68
  buildz/ioc/ioc_deal/conf/ioc_lists.js
69
+ buildz/ioc/ioc_deal/conf/iocf_lists.js
68
70
  buildz/ioc/ioc_deal/conf/join_lists.js
69
71
  buildz/ioc/ioc_deal/conf/list_lists.js
70
72
  buildz/ioc/ioc_deal/conf/map_lists.js
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.5.4',
10
+ version = '0.5.6',
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