buildz 0.5.1__tar.gz → 0.5.2__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.
- {buildz-0.5.1/buildz.egg-info → buildz-0.5.2}/PKG-INFO +1 -1
- buildz-0.5.2/buildz/ioc/base.py +4 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc/base.py +4 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc/conf.py +18 -14
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc/confs.py +24 -10
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/base.py +32 -8
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/call.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/calls.py +2 -2
- buildz-0.5.2/buildz/ioc/ioc_deal/deal.py +86 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/env.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/ioc.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/join.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/list.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/map.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/mcall.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/obj.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/ovar.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/ref.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/var.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/xfile.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/__init__.py +2 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/file.py +7 -1
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/spc.py +0 -4
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/mg.py +7 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/test.py +6 -5
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/readz.py +11 -2
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/write.py +8 -1
- {buildz-0.5.1 → buildz-0.5.2/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.5.1 → buildz-0.5.2}/buildz.egg-info/SOURCES.txt +1 -0
- {buildz-0.5.1 → buildz-0.5.2}/setup.py +1 -1
- buildz-0.5.1/buildz/ioc/ioc_deal/deal.py +0 -40
- {buildz-0.5.1 → buildz-0.5.2}/LICENSE +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/MANIFEST.in +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/README.md +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/__init__.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/__main__.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/argx.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/myers/deal.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/myers/help.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/help/myers.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/res/test.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/search/deal.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/search/help.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/test.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/demo/xf/help.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/fz/__init__.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/fz/dirz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/fz/fio.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/fz/lsf.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/__init__.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/init.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/deal_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/xfile_defaults.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/conf/xfile_lists.js +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/pyz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/tz/__init__.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/tz/myers_diff.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/__main__.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/base.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/item.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/base.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/buffer.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/listz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/lr.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/lrval.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/mapz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/nextz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/reval.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/setz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/spt.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/deal/strz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/exp.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/item.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/loaderz/pos.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/mapz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/read.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/stack.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/base.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz/xf/xargs.py +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.5.1 → buildz-0.5.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.2
|
4
4
|
Summary: 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
|
5
5
|
Home-page: https://github.com/buildCodeZ/buildz
|
6
6
|
Author: Zzz
|
@@ -47,6 +47,7 @@ class EncapeData(Base):
|
|
47
47
|
raise IOCError("only dict can be a parent: "+pid)
|
48
48
|
data = dict(data)
|
49
49
|
self.update_maps(data, pdt, replace=0)
|
50
|
+
del data['parent']
|
50
51
|
self.data = data
|
51
52
|
self.sid = conf.id
|
52
53
|
self.src = src
|
@@ -57,5 +58,8 @@ class EncapeData(Base):
|
|
57
58
|
type = conf.confs.get_data_type(data, 0, conf.default_type())
|
58
59
|
self.type = type
|
59
60
|
self.info = info
|
61
|
+
def deal(self, remove = False):
|
62
|
+
return self.conf.get(self, src = self.src, info=self.info, remove = remove)
|
63
|
+
|
60
64
|
|
61
65
|
pass
|
@@ -3,6 +3,7 @@ from buildz import xf, pyz
|
|
3
3
|
from buildz.xf import g as xg
|
4
4
|
import json
|
5
5
|
from .base import Base, EncapeData,IOCError
|
6
|
+
from builtins import id as _id
|
6
7
|
class Conf(Base):
|
7
8
|
"""
|
8
9
|
配置文件格式:
|
@@ -84,6 +85,7 @@ class Conf(Base):
|
|
84
85
|
self._default_type = xf.g(conf, default_type = None)
|
85
86
|
self.envs = xf.g(conf, envs = {})
|
86
87
|
self.confs.flush_env(self.envs)
|
88
|
+
self.confs.update_env(self.envs)
|
87
89
|
for _type in list(self.deals.keys()):
|
88
90
|
conf = self.deals[_type]
|
89
91
|
if type(conf) in [list, tuple]:
|
@@ -114,17 +116,7 @@ class Conf(Base):
|
|
114
116
|
def get_env(self, id, search_confs = True):
|
115
117
|
if self.confs.global_env and search_confs:
|
116
118
|
return self.confs.get_env(id, self.id)
|
117
|
-
|
118
|
-
envs = self.envs
|
119
|
-
find = None
|
120
|
-
for id in ids:
|
121
|
-
if type(envs)!=dict:
|
122
|
-
envs = None
|
123
|
-
break
|
124
|
-
if id not in envs:
|
125
|
-
envs = None
|
126
|
-
break
|
127
|
-
envs = envs[id]
|
119
|
+
envs = self.confs.get_env_maps(id, self.envs)
|
128
120
|
if envs is not None:
|
129
121
|
return envs
|
130
122
|
if not search_confs:
|
@@ -145,12 +137,20 @@ class Conf(Base):
|
|
145
137
|
self.do_init()
|
146
138
|
if id in self.datas:
|
147
139
|
obj = self.datas[id]
|
148
|
-
|
140
|
+
edata = EncapeData(obj, self, local = False, src=src, info = info)
|
141
|
+
if _id(obj) != _id(edata.data):
|
142
|
+
# 有parent,做了填充,用填充后的替换
|
143
|
+
self.datas[id] = edata.data
|
144
|
+
return edata
|
149
145
|
if not local:
|
150
146
|
return None
|
151
147
|
if id in self.locals:
|
152
148
|
obj = self.locals[id]
|
153
|
-
|
149
|
+
edata = EncapeData(obj, self, local = True, src=src, info = info)
|
150
|
+
if _id(obj) != _id(edata.data):
|
151
|
+
# 有parent,做了填充,用填充后的替换
|
152
|
+
self.locals[id] = edata.data
|
153
|
+
return edata
|
154
154
|
if not search_confs:
|
155
155
|
return None
|
156
156
|
return self.confs.get_data(id, self.id, src=src, info = info)
|
@@ -164,7 +164,11 @@ class Conf(Base):
|
|
164
164
|
"""
|
165
165
|
根据data id获取data对象,处理逻辑:根据data id查配置,根据配置的type查deal,返回deal处理过的配置
|
166
166
|
"""
|
167
|
-
|
167
|
+
self.do_init()
|
168
|
+
if type(id) == EncapeData:
|
169
|
+
conf = id
|
170
|
+
else:
|
171
|
+
conf = self.get_data(id, src = src, info = info)
|
168
172
|
if conf is None:
|
169
173
|
raise IOCError(f"can't find conf of {id}")
|
170
174
|
return None
|
@@ -55,6 +55,7 @@ class Confs(Base):
|
|
55
55
|
data = xf.args()
|
56
56
|
env = data['env']
|
57
57
|
self.envs_args = env
|
58
|
+
self.flush_env(self.envs_args)
|
58
59
|
def build_env_args_buildz(self):
|
59
60
|
args, maps = argx.fetch()
|
60
61
|
e = xf.get(maps, e = [])
|
@@ -63,22 +64,25 @@ class Confs(Base):
|
|
63
64
|
env = [k.split("=") for k in env]
|
64
65
|
env = {k[0]:"=".join(k[1:]) for k in env}
|
65
66
|
self.envs_args = env
|
67
|
+
self.flush_env(self.envs_args)
|
68
|
+
def build_env_args(self):
|
69
|
+
if self.args_type == "xf":
|
70
|
+
self.build_env_args_xf()
|
71
|
+
else:
|
72
|
+
self.build_env_args_buildz()
|
66
73
|
def get_env_args(self, id, sid=None):
|
67
|
-
if self.envs_args is
|
68
|
-
|
69
|
-
|
70
|
-
else:
|
71
|
-
self.build_env_args_buildz()
|
72
|
-
return xf.get(self.envs_args, id)
|
74
|
+
if self.envs_args is None:
|
75
|
+
self.build_env_args()
|
76
|
+
return self.get_env_maps(id, self.envs_args)
|
73
77
|
def get_env_local(self, id, sid=None):
|
74
78
|
if sid is not None and not self.global_env:
|
75
79
|
val = self.confs[sid].get_env(id, False)
|
76
80
|
if val is not None:
|
77
81
|
return val
|
78
82
|
return None
|
79
|
-
def
|
83
|
+
def get_env_maps(self, id, maps):
|
80
84
|
ids = self.env_ids(id)
|
81
|
-
envs =
|
85
|
+
envs = maps
|
82
86
|
for id in ids:
|
83
87
|
if type(envs)!=dict:
|
84
88
|
envs = None
|
@@ -88,6 +92,8 @@ class Confs(Base):
|
|
88
92
|
break
|
89
93
|
envs = envs[id]
|
90
94
|
return envs
|
95
|
+
def get_env_conf(self, id, sid=None):
|
96
|
+
return self.get_env_maps(id, self.envs)
|
91
97
|
def get_env(self, id, sid=None):
|
92
98
|
for key in self.env_orders:
|
93
99
|
fc = self.env_fcs[key]
|
@@ -117,6 +123,8 @@ class Confs(Base):
|
|
117
123
|
obj = {id:val}
|
118
124
|
self.flush_env(obj)
|
119
125
|
self.update_maps(self.envs, obj)
|
126
|
+
def update_env(self, obj):
|
127
|
+
self.update_maps(self.envs, obj)
|
120
128
|
def set_deal(self, type, fc):
|
121
129
|
self.deals[type] = fc
|
122
130
|
def init_fp(self, fp):
|
@@ -205,7 +213,7 @@ class Confs(Base):
|
|
205
213
|
self.data_index_type = xf.g(conf, data_index_type = [0,1])
|
206
214
|
self.deal_key_type = xf.g(conf, deal_key_type = 'type')
|
207
215
|
self.deal_index_type = xf.g(conf, deal_index_type = 0)
|
208
|
-
self.env_orders = xf.g(conf, env_orders = ['
|
216
|
+
self.env_orders = xf.g(conf, env_orders = ['sys', 'local', 'conf'])
|
209
217
|
self.env_fcs = {
|
210
218
|
'args': self.get_env_args,
|
211
219
|
'sys': self.get_env_sys,
|
@@ -221,6 +229,8 @@ class Confs(Base):
|
|
221
229
|
self.envs = {}
|
222
230
|
self.envs_args = None
|
223
231
|
self.mark_init = False
|
232
|
+
if 'args' in self.env_orders:
|
233
|
+
self.build_env_args()
|
224
234
|
def do_init(self):
|
225
235
|
if self.mark_init:
|
226
236
|
return
|
@@ -239,6 +249,7 @@ class Confs(Base):
|
|
239
249
|
obj = obj[self.data_index_id[1]]
|
240
250
|
return obj
|
241
251
|
def get_data_type(self, obj, type_first = 1, default = None):
|
252
|
+
self.do_init()
|
242
253
|
if type(obj)==dict:
|
243
254
|
if self.data_key_type not in obj:
|
244
255
|
return default
|
@@ -314,7 +325,10 @@ class Confs(Base):
|
|
314
325
|
根据data id获取data对象,处理逻辑:根据data id查配置,根据配置的type查deal,返回deal处理过的配置
|
315
326
|
"""
|
316
327
|
self.do_init()
|
317
|
-
|
328
|
+
if type(id) == EncapeData:
|
329
|
+
conf = id
|
330
|
+
else:
|
331
|
+
conf = self.get_data(id, sid, src=src, info = info)
|
318
332
|
if conf is None:
|
319
333
|
raise IOCError(f"confs: can't find conf of {id}")
|
320
334
|
return None
|
@@ -117,11 +117,38 @@ class FormatData(Base):
|
|
117
117
|
|
118
118
|
pass
|
119
119
|
|
120
|
-
|
121
120
|
class BaseDeal(Base):
|
122
|
-
|
123
|
-
|
124
|
-
self
|
121
|
+
"""
|
122
|
+
基础处理类,加了一些方便处理的方法,自己写的处理可以不用继承这个
|
123
|
+
自己实现的处理类,要实现两个方法:__call__(self, edata:EncapeData)和remove(self, edata:EncapeData)
|
124
|
+
其中remove可以只写个空方法
|
125
|
+
"""
|
126
|
+
def get_obj(self, data, conf, src = None, info = None):
|
127
|
+
if type(data) not in [list, dict, tuple]:
|
128
|
+
i = conf.confs.data_index_type[0]
|
129
|
+
data = [conf.default_type(), data]
|
130
|
+
if i != 0:
|
131
|
+
data.reverse()
|
132
|
+
_type = conf.confs.get_data_type(data, 1, conf.default_type())
|
133
|
+
edata = EncapeData(data, conf, local=True, type=_type, src = src, info = info)
|
134
|
+
return edata()
|
135
|
+
deal = conf.get_deal(edata.type)
|
136
|
+
if deal is None:
|
137
|
+
return None
|
138
|
+
return deal(edata)
|
139
|
+
def deal(self, edata:EncapeData):
|
140
|
+
"""
|
141
|
+
"""
|
142
|
+
return None
|
143
|
+
def remove(self, edata:EncapeData):
|
144
|
+
return None
|
145
|
+
|
146
|
+
pass
|
147
|
+
class FormatDeal(BaseDeal):
|
148
|
+
"""
|
149
|
+
格式化处理类,加了自动装填,但感觉不太好用(一方面忘记写注释,写的时间久了,不知道要怎么用了,另一方面不好扩展,再一方面自动填充要消耗时间))
|
150
|
+
"""
|
151
|
+
def init(self, name = "FormatDeal", fp_lists = None, fp_defaults = None, df_fp_lists=None, df_fp_defaults=None):
|
125
152
|
if fp_lists is None:
|
126
153
|
fp_lists = df_fp_lists
|
127
154
|
if fp_defaults is None:
|
@@ -145,13 +172,10 @@ class BaseDeal(Base):
|
|
145
172
|
data.reverse()
|
146
173
|
_type = conf.confs.get_data_type(data, 1, conf.default_type())
|
147
174
|
edata = EncapeData(data, conf, local=True, type=_type, src = src, info = info)
|
175
|
+
return edata()
|
148
176
|
deal = conf.get_deal(edata.type)
|
149
177
|
if deal is None:
|
150
178
|
return None
|
151
179
|
return deal(edata)
|
152
|
-
def deal(self, edata:EncapeData):
|
153
|
-
return None
|
154
|
-
def remove(self, edata:EncapeData):
|
155
|
-
return None
|
156
180
|
|
157
181
|
pass
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class CallDeal(
|
8
|
+
class CallDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
函数调用call:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class CallsDeal(
|
8
|
+
class CallsDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
函数调用序列calls:
|
11
11
|
{
|
@@ -0,0 +1,86 @@
|
|
1
|
+
#coding=utf-8
|
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 DealDeal(FormatDeal):
|
9
|
+
"""
|
10
|
+
扩展的好处是自定义格式,除了id,type和parent字段,其他字段可以自己加
|
11
|
+
假设生成个test.Demo,构造函数只有一个字段val
|
12
|
+
{
|
13
|
+
id: test
|
14
|
+
type: object
|
15
|
+
source: test.Demo
|
16
|
+
construct: {
|
17
|
+
args: [
|
18
|
+
(val, 'demo')
|
19
|
+
]
|
20
|
+
}
|
21
|
+
}
|
22
|
+
自己写个生成特定对象的处理类:
|
23
|
+
配置文件1 def_demo.js:
|
24
|
+
{
|
25
|
+
datas:[
|
26
|
+
{
|
27
|
+
id: obj.demo.deal
|
28
|
+
type: object
|
29
|
+
source: test.BuildDemo
|
30
|
+
}
|
31
|
+
{
|
32
|
+
id: demo.deal
|
33
|
+
type: deal
|
34
|
+
source: obj.demo.deal
|
35
|
+
target: demo.deal
|
36
|
+
}
|
37
|
+
]
|
38
|
+
//inits初始化
|
39
|
+
inits: [
|
40
|
+
demo.deal
|
41
|
+
]
|
42
|
+
}
|
43
|
+
配置文件2 demo.js:
|
44
|
+
//只有datas的时候可以简写成只写datas列表里的数据
|
45
|
+
[
|
46
|
+
{
|
47
|
+
id: test
|
48
|
+
type: demo.deal
|
49
|
+
val: "demo"
|
50
|
+
}
|
51
|
+
]
|
52
|
+
调用后会注册到conf的deal上,用于扩展deals配置
|
53
|
+
deal字段deal:
|
54
|
+
{
|
55
|
+
id:id
|
56
|
+
type: deal
|
57
|
+
target: type
|
58
|
+
source: id # 要求source实现了方法__call__(self, edata:EncapeData)
|
59
|
+
}
|
60
|
+
简写:
|
61
|
+
[[id, deal], target, source]
|
62
|
+
[deal, target, source]
|
63
|
+
例:
|
64
|
+
[deal, target, source] //
|
65
|
+
"""
|
66
|
+
def init(self, fp_lists=None, fp_defaults=None):
|
67
|
+
super().init("DealDeal", fp_lists, fp_defaults, join(dp, "conf", "deal_lists.js"), None)
|
68
|
+
def deal(self, edata:EncapeData):
|
69
|
+
data = edata.data
|
70
|
+
source = xf.g(data, source=None)
|
71
|
+
if source is None:
|
72
|
+
raise IOCError("not source in dealdeal")
|
73
|
+
target = xf.g(data, target=None)
|
74
|
+
if target is None:
|
75
|
+
raise IOCError("not target in dealdeal")
|
76
|
+
obj = edata.conf.get(source)
|
77
|
+
if obj is None:
|
78
|
+
raise IOCError("source object not found in dealdeal")
|
79
|
+
targets = target
|
80
|
+
if type(targets) != list:
|
81
|
+
targets = [targets]
|
82
|
+
for target in targets:
|
83
|
+
edata.conf.set_deal(target, obj)
|
84
|
+
return None
|
85
|
+
|
86
|
+
pass
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class EnvDeal(
|
8
|
+
class EnvDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
环境变量env:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class IOCObjectDeal(
|
8
|
+
class IOCObjectDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
ioc字段ioc:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class JoinDeal(
|
8
|
+
class JoinDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
文件路径合并join:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class ListDeal(
|
8
|
+
class ListDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
list:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class MapDeal(
|
8
|
+
class MapDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
map:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class MethodCallDeal(
|
8
|
+
class MethodCallDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
对象方法调用:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData,IOCError
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class ObjectDeal(
|
8
|
+
class ObjectDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
对象object:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class ObjectVarDeal(
|
8
|
+
class ObjectVarDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
对象变量ovar:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#coding=utf-8
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class RefDeal(
|
8
|
+
class RefDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
引用ref:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class VarDeal(
|
8
|
+
class VarDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
代码变量var:
|
11
11
|
{
|
@@ -1,11 +1,11 @@
|
|
1
1
|
#
|
2
2
|
from ..ioc.base import Base, EncapeData
|
3
|
-
from .base import FormatData,
|
3
|
+
from .base import FormatData,FormatDeal
|
4
4
|
from buildz import xf, pyz
|
5
5
|
import os
|
6
6
|
dp = os.path.dirname(__file__)
|
7
7
|
join = os.path.join
|
8
|
-
class XfileDeal(
|
8
|
+
class XfileDeal(FormatDeal):
|
9
9
|
"""
|
10
10
|
配置文件载入xfile/xf:
|
11
11
|
{
|
@@ -82,6 +82,13 @@ class Manager:
|
|
82
82
|
while self.deal(buffer, arr):
|
83
83
|
pass
|
84
84
|
arr = [k.val for k in arr]
|
85
|
+
rst = []
|
86
|
+
for k in arr:
|
87
|
+
if type(k) == self.type:
|
88
|
+
if len(k.strip())==0:
|
89
|
+
continue
|
90
|
+
rst.append(k)
|
91
|
+
arr = rst
|
85
92
|
if len(arr)==1:
|
86
93
|
arr = arr[0]
|
87
94
|
return arr
|
@@ -19,11 +19,11 @@ from buildz import xf
|
|
19
19
|
import json
|
20
20
|
import time
|
21
21
|
|
22
|
-
def cost(f,*a,**b):
|
22
|
+
def cost(n, f,*a,**b):
|
23
23
|
c = time.time()
|
24
24
|
r = f(*a,**b)
|
25
25
|
d = time.time()-c
|
26
|
-
print(f"time cost in {f}: {d}")
|
26
|
+
print(f"time cost in {n}-{f}: {d}")
|
27
27
|
return r
|
28
28
|
|
29
29
|
pass
|
@@ -55,6 +55,7 @@ print("test E")
|
|
55
55
|
json.dumps(_map)
|
56
56
|
print("test F")
|
57
57
|
js = json.dumps(rst)
|
58
|
+
js = "\n\n"+js+"\n"
|
58
59
|
#js = xf.dumps(rst, json_format=1)
|
59
60
|
# js = r"""
|
60
61
|
# [
|
@@ -62,10 +63,10 @@ js = json.dumps(rst)
|
|
62
63
|
# ]
|
63
64
|
# """
|
64
65
|
print("start")
|
65
|
-
jv = cost(json.loads,js)
|
66
|
-
xv = cost(rz.loads,js)
|
66
|
+
jv = cost("json.loads", json.loads,js)
|
67
|
+
xv = cost("rz.loads",rz.loads,js)
|
67
68
|
print(f"judge: {jv==xv}")
|
68
|
-
_xv = cost(rd.loads, js)
|
69
|
+
_xv = cost("rd.loads",rd.loads, js)
|
69
70
|
#with open("test.json", 'w') as f:
|
70
71
|
# f.write(js)
|
71
72
|
if n>3 or m>3 or l > 3:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
from .loaderz import mg, buffer, base
|
3
|
-
|
3
|
+
from . import file
|
4
4
|
from .loaderz.deal import nextz, spt, strz, listz, spc, setz, mapz, reval, lrval
|
5
5
|
class BoolFc:
|
6
6
|
def __init__(self, mg):
|
@@ -76,7 +76,16 @@ def load(read, as_bytes = False):
|
|
76
76
|
return msg.loads(read)
|
77
77
|
def loads(s):
|
78
78
|
mgs = build(type(s)==bytes)
|
79
|
-
input = buffer.BufferInput(s)
|
79
|
+
#input = buffer.BufferInput(s)
|
80
80
|
return mgs.loads(s)
|
81
81
|
|
82
82
|
pass
|
83
|
+
|
84
|
+
def loadf(fp, bts = False):
|
85
|
+
if bts:
|
86
|
+
s = file.bread(fp)
|
87
|
+
else:
|
88
|
+
s = file.fread(fp)
|
89
|
+
return loads(s)
|
90
|
+
|
91
|
+
pass
|
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
from .writer import mg, itemz, base, conf
|
3
3
|
from .writer.deal import listz, mapz, strz, reval, jsonval
|
4
|
+
from . import file
|
4
5
|
pts = [
|
5
6
|
"[\+\-]?\d+",
|
6
7
|
"[\+\-]?\d+\.\d+",
|
@@ -37,8 +38,14 @@ def dumps(obj, bytes = 0, format = 0, deep = 0, json_format= 0):
|
|
37
38
|
|
38
39
|
pass
|
39
40
|
|
41
|
+
def dumpf(filepath, obj, bytes = 0, format = 0, deep = 0, json_format= 0, mode = 'w'):
|
42
|
+
s = dumps(obj, bytes = bytes, format = format, deep = deep, json_format= json_format)
|
43
|
+
file.fwrite(filepath, s, mode)
|
44
|
+
|
45
|
+
pass
|
46
|
+
|
40
47
|
def dump(output, obj, *argv, **maps):
|
41
48
|
rs = dumps(obj, *argv, **maps)
|
42
49
|
output(rs)
|
43
50
|
|
44
|
-
pass
|
51
|
+
pass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.2
|
4
4
|
Summary: 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
|
5
5
|
Home-page: https://github.com/buildCodeZ/buildz
|
6
6
|
Author: Zzz
|
@@ -1,40 +0,0 @@
|
|
1
|
-
#coding=utf-8
|
2
|
-
from ..ioc.base import Base, EncapeData,IOCError
|
3
|
-
from .base import FormatData,BaseDeal
|
4
|
-
from buildz import xf, pyz
|
5
|
-
import os
|
6
|
-
dp = os.path.dirname(__file__)
|
7
|
-
join = os.path.join
|
8
|
-
class DealDeal(BaseDeal):
|
9
|
-
"""
|
10
|
-
// 调用后会注册到conf的deal上,用于扩展deals配置
|
11
|
-
deal字段deal:
|
12
|
-
{
|
13
|
-
id:id
|
14
|
-
type: deal
|
15
|
-
target: type
|
16
|
-
source: id # 要求source实现了方法__call__(self, edata:EncapeData)
|
17
|
-
}
|
18
|
-
简写:
|
19
|
-
[[id, deal], target, source]
|
20
|
-
[deal, target, source]
|
21
|
-
例:
|
22
|
-
[deal, target, source] //
|
23
|
-
"""
|
24
|
-
def init(self, fp_lists=None, fp_defaults=None):
|
25
|
-
super().init("DealDeal", fp_lists, fp_defaults, join(dp, "conf", "deal_lists.js"), None)
|
26
|
-
def deal(self, edata:EncapeData):
|
27
|
-
data = edata.data
|
28
|
-
source = xf.g(data, source=None)
|
29
|
-
if source is None:
|
30
|
-
raise IOCError("not source in dealdeal")
|
31
|
-
target = xf.g(data, target=None)
|
32
|
-
if target is None:
|
33
|
-
raise IOCError("not target in dealdeal")
|
34
|
-
obj = edata.conf.get(source)
|
35
|
-
if obj is None:
|
36
|
-
raise IOCError("source object not found in dealdeal")
|
37
|
-
edata.conf.set_deal(target, obj)
|
38
|
-
return None
|
39
|
-
|
40
|
-
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
|
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
|