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