buildz 0.4.4__tar.gz → 0.4.5__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.4.4/buildz.egg-info → buildz-0.4.5}/PKG-INFO +1 -1
- buildz-0.4.5/buildz/__init__.py +7 -0
- buildz-0.4.5/buildz/__main__.py +6 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/argx.py +9 -1
- buildz-0.4.5/buildz/demo/ioc/deal.py +19 -0
- buildz-0.4.5/buildz/demo/ioc/help.py +7 -0
- buildz-0.4.5/buildz/demo/res/conf/ioc.js +20 -0
- buildz-0.4.5/buildz/demo/res/conf/main.js +54 -0
- buildz-0.4.5/buildz/demo/res/conf/xf.js +21 -0
- buildz-0.4.5/buildz/demo/res/help/default.js +9 -0
- buildz-0.4.5/buildz/demo/res/help/ioc.js +165 -0
- buildz-0.4.5/buildz/demo/res/help/xf.js +35 -0
- buildz-0.4.5/buildz/demo/res/test.js +13 -0
- buildz-0.4.5/buildz/demo/test.py +42 -0
- buildz-0.4.5/buildz/demo/xf/deal.py +16 -0
- buildz-0.4.5/buildz/demo/xf/help.py +8 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/ioc/test_conf/data1.js +1 -1
- buildz-0.4.5/buildz/fz/__init__.py +6 -0
- buildz-0.4.5/buildz/fz/dirz.py +46 -0
- buildz-0.4.5/buildz/fz/lsf.py +62 -0
- buildz-0.4.5/buildz/ioc/__init__.py +5 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc/confs.py +69 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/base.py +2 -1
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/calls.py +1 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/deals.js +12 -0
- buildz-0.4.5/buildz/ioc/ioc_deal/conf/join_lists.js +17 -0
- buildz-0.4.5/buildz/ioc/ioc_deal/conf/list_lists.js +17 -0
- buildz-0.4.5/buildz/ioc/ioc_deal/conf/map_lists.js +17 -0
- buildz-0.4.5/buildz/ioc/ioc_deal/join.py +19 -0
- buildz-0.4.5/buildz/ioc/ioc_deal/list.py +19 -0
- buildz-0.4.5/buildz/ioc/ioc_deal/map.py +19 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/obj.py +1 -1
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/ref.py +1 -1
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/val.py +1 -1
- buildz-0.4.5/buildz/xf/__init__.py +8 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/strz.py +11 -1
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/read.py +9 -1
- {buildz-0.4.4 → buildz-0.4.5/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.4.4 → buildz-0.4.5}/buildz.egg-info/SOURCES.txt +34 -12
- {buildz-0.4.4 → buildz-0.4.5}/setup.py +1 -1
- buildz-0.4.4/buildz/__init__.py +0 -4
- buildz-0.4.4/buildz/ioc/__init__.py +0 -3
- buildz-0.4.4/buildz/xf/__init__.py +0 -6
- {buildz-0.4.4 → buildz-0.4.5}/LICENSE +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/MANIFEST.in +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/README.md +0 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/ioc/test.py +0 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/ioc/test_conf/base.js +0 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/ioc/test_conf/data2.js +0 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/ioc/test_conf/data3.js +0 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/xf/test.js +0 -0
- {buildz-0.4.4/buildz/demo → buildz-0.4.5/buildz/demos}/xf/test.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/init.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/keys.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/__init__.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/__main__.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/base.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/build.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/confz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/demo.confz +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/demo.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/run.confz +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/test.confz +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/test.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/testc.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/testf.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/testz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/value.confz +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/demo/x/x.py +0 -0
- {buildz-0.4.4/buildz → buildz-0.4.5/buildz/old_version}/dj.txt +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/keys.py +0 -0
- {buildz-0.4.4/buildz → buildz-0.4.5/buildz/old_version}/test_loader copy.py +0 -0
- {buildz-0.4.4/buildz → buildz-0.4.5/buildz/old_version}/test_loader.py +0 -0
- {buildz-0.4.4/buildz → buildz-0.4.5/buildz/old_version}/test_writer.py +0 -0
- {buildz-0.4.4/buildz → buildz-0.4.5/buildz/old_version}/tools.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/__init__.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/base.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/buff.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc_item.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc_list.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc_map.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc_set.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc_str.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fc_type.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/file.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fmt_base.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fmt_str.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/fmt_type.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/mg.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/old_version/xconfz/mg_fmt.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/pyz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/file.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/base.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/item.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/mapz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/test_write.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/write.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/base.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz/xf/xargs.py +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.4.4 → buildz-0.4.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.5
|
4
4
|
Summary: a json-like 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
|
@@ -26,6 +26,8 @@ def fetch(argv = None):
|
|
26
26
|
x = kv.split("=")
|
27
27
|
key = x[0]
|
28
28
|
val = "=".join(x[1:])
|
29
|
+
if len(val)==0:
|
30
|
+
val = 1
|
29
31
|
else:
|
30
32
|
key = v[1]
|
31
33
|
if len(v)>2:
|
@@ -36,8 +38,14 @@ def fetch(argv = None):
|
|
36
38
|
else:
|
37
39
|
val = argv[i+1]
|
38
40
|
i+=1
|
39
|
-
|
41
|
+
if key not in maps:
|
42
|
+
maps[key] = []
|
43
|
+
maps[key].append(val)
|
40
44
|
i+=1
|
45
|
+
for k in maps:
|
46
|
+
v = maps[k]
|
47
|
+
if len(v)==1:
|
48
|
+
maps[k] = v[0]
|
41
49
|
return lists, maps
|
42
50
|
|
43
51
|
pass
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
from buildz import xf, argx, pyz, ioc, fz
|
3
|
+
|
4
|
+
class Deal:
|
5
|
+
def deal(self):
|
6
|
+
args, maps = argx.fetch()
|
7
|
+
if len(args)<3:
|
8
|
+
print("need params 1 to be filepath, params 2 to be data_id")
|
9
|
+
return
|
10
|
+
dp = args[1]
|
11
|
+
fps = fz.search(dp, ".*\.js$")
|
12
|
+
confs = ioc.build()
|
13
|
+
confs.add_fps(fps)
|
14
|
+
id = args[2]
|
15
|
+
rst = confs.get(id)
|
16
|
+
print(f"get {id}: {rst}")
|
17
|
+
return rst
|
18
|
+
|
19
|
+
pass
|
@@ -0,0 +1,20 @@
|
|
1
|
+
{
|
2
|
+
datas: [
|
3
|
+
{
|
4
|
+
id: help.ioc
|
5
|
+
type: object
|
6
|
+
source: buildz.demo.ioc.help.Help
|
7
|
+
construct: {
|
8
|
+
maps: {
|
9
|
+
dp: [ref, help.dir]
|
10
|
+
fp: [val, ioc.js]
|
11
|
+
}
|
12
|
+
}
|
13
|
+
}
|
14
|
+
{
|
15
|
+
id: deal.ioc
|
16
|
+
type: object
|
17
|
+
source: buildz.demo.ioc.deal.Deal
|
18
|
+
}
|
19
|
+
]
|
20
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
{
|
2
|
+
datas: [
|
3
|
+
{
|
4
|
+
id: help.dir
|
5
|
+
type: join
|
6
|
+
data: [
|
7
|
+
[var, buildz.demo.test.dp]
|
8
|
+
[val, res/help]
|
9
|
+
]
|
10
|
+
}
|
11
|
+
{
|
12
|
+
id: help.default, type: object, source: buildz.demo.test.Help
|
13
|
+
construct: {
|
14
|
+
args: [(ref, help.dir), (val, default.js)]
|
15
|
+
}
|
16
|
+
}
|
17
|
+
{
|
18
|
+
id: demo, type: object, source: buildz.demo.test.Deal
|
19
|
+
construct: {
|
20
|
+
//args: []
|
21
|
+
maps: {
|
22
|
+
conf: {
|
23
|
+
type: ioc
|
24
|
+
key: conf
|
25
|
+
}
|
26
|
+
deals: {
|
27
|
+
type: val
|
28
|
+
// 这里让test.Deal自己查id对应的object,也可以写成在配置里直接映射好,但写起来比较麻烦
|
29
|
+
data: {
|
30
|
+
ioc: {
|
31
|
+
deal: deal.ioc
|
32
|
+
help: help.ioc
|
33
|
+
},
|
34
|
+
xf: {
|
35
|
+
deal: deal.xf
|
36
|
+
help: help.xf
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
default: {
|
41
|
+
type: ref
|
42
|
+
key: help.default
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
{
|
48
|
+
id: run
|
49
|
+
type: mcall
|
50
|
+
source: demo
|
51
|
+
method: run
|
52
|
+
}
|
53
|
+
]
|
54
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
datas: [
|
3
|
+
{
|
4
|
+
id: help.xf
|
5
|
+
type: object
|
6
|
+
source: buildz.demo.xf.help.Help
|
7
|
+
construct: {
|
8
|
+
args: [
|
9
|
+
[ref, help.dir]
|
10
|
+
[val, xf.js]
|
11
|
+
]
|
12
|
+
}
|
13
|
+
}
|
14
|
+
{
|
15
|
+
id: deal.xf
|
16
|
+
type: object
|
17
|
+
source: buildz.demo.xf.deal.Deal
|
18
|
+
construct: {}
|
19
|
+
}
|
20
|
+
]
|
21
|
+
}
|
@@ -0,0 +1,165 @@
|
|
1
|
+
{
|
2
|
+
text=
|
3
|
+
r"""
|
4
|
+
xf格式的ioc控制反转配置文件读取和生成对象
|
5
|
+
配置文件格式:
|
6
|
+
{
|
7
|
+
id: 配置文件id,默认null
|
8
|
+
//在配置文件配置的环境变量
|
9
|
+
envs: {
|
10
|
+
id: val
|
11
|
+
...
|
12
|
+
}
|
13
|
+
// 数据配置项处理逻辑,一般不用管
|
14
|
+
deals: {
|
15
|
+
{
|
16
|
+
type: 要处理的数据类型
|
17
|
+
build: 函数import的路径
|
18
|
+
args: [] // 列表入参
|
19
|
+
maps: {} // 字典入参
|
20
|
+
}
|
21
|
+
}
|
22
|
+
namespace: 命名空间
|
23
|
+
locals: [
|
24
|
+
本地数据配置项
|
25
|
+
]
|
26
|
+
datas: [
|
27
|
+
全局数据配置项
|
28
|
+
]
|
29
|
+
}
|
30
|
+
|
31
|
+
预设的数据项格式
|
32
|
+
1, 数据val:
|
33
|
+
{
|
34
|
+
// 查找id,可选
|
35
|
+
id: id
|
36
|
+
type: val
|
37
|
+
data: any thing
|
38
|
+
}
|
39
|
+
简写:
|
40
|
+
[[id, val], data] -> [val, data]
|
41
|
+
|
42
|
+
2, 对象object:
|
43
|
+
{
|
44
|
+
id: id
|
45
|
+
type: object
|
46
|
+
source: 导入路径+调用方法/类
|
47
|
+
single: 1 //是否单例,默认是
|
48
|
+
construct:{
|
49
|
+
args: [
|
50
|
+
...
|
51
|
+
]
|
52
|
+
maps: {
|
53
|
+
key: {...}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
sets: {
|
57
|
+
key: {...}
|
58
|
+
}
|
59
|
+
calls: [
|
60
|
+
...
|
61
|
+
]
|
62
|
+
}
|
63
|
+
简写:
|
64
|
+
[[id, object, single], source, construct, sets, calls] -> [object, source]
|
65
|
+
|
66
|
+
3, 引用
|
67
|
+
{
|
68
|
+
id: id
|
69
|
+
type: ref
|
70
|
+
key: 引导数据id
|
71
|
+
}
|
72
|
+
简写:
|
73
|
+
[[id, ref], key] -> [ref, key]
|
74
|
+
|
75
|
+
4, 环境变量
|
76
|
+
{
|
77
|
+
id: id
|
78
|
+
type: env
|
79
|
+
key: 环境变量key
|
80
|
+
}
|
81
|
+
简写:
|
82
|
+
[[id, env], key] -> [env, key]
|
83
|
+
|
84
|
+
5, 对象方法调用:
|
85
|
+
{
|
86
|
+
id: id
|
87
|
+
type: mcall
|
88
|
+
source: 对象id
|
89
|
+
method: 调用方法
|
90
|
+
args: [...]
|
91
|
+
maps: {key:...}
|
92
|
+
}->
|
93
|
+
[[id, mcall], source, method, args, maps]->[mcall, source, method]
|
94
|
+
6, 函数调用:
|
95
|
+
{
|
96
|
+
id:id
|
97
|
+
type:call
|
98
|
+
method: import路径+"."+方法名
|
99
|
+
args: [...]
|
100
|
+
maps: {key:...}
|
101
|
+
}->
|
102
|
+
[[id, call], method, args, maps]->[call, method]
|
103
|
+
|
104
|
+
7,对象变量
|
105
|
+
{
|
106
|
+
id:id
|
107
|
+
type: ovar
|
108
|
+
source: string
|
109
|
+
key: string
|
110
|
+
}->
|
111
|
+
[[id, ovar], source, key] -> [ovar, source, key]
|
112
|
+
|
113
|
+
8, 代码变量
|
114
|
+
{
|
115
|
+
id:id
|
116
|
+
type: var
|
117
|
+
key: string
|
118
|
+
}->
|
119
|
+
[[id, ovar], source, key] -> [ovar, source, key]
|
120
|
+
|
121
|
+
|
122
|
+
9,ioc字段
|
123
|
+
{
|
124
|
+
id:id
|
125
|
+
type: ioc
|
126
|
+
//default conf
|
127
|
+
key: string = conf, confs, sid
|
128
|
+
}->
|
129
|
+
[[id, ioc], key] -> [ioc]
|
130
|
+
|
131
|
+
10, list
|
132
|
+
{
|
133
|
+
id: id
|
134
|
+
type: list
|
135
|
+
data: [...]
|
136
|
+
}
|
137
|
+
11,map
|
138
|
+
{
|
139
|
+
id:id
|
140
|
+
type:map
|
141
|
+
data: {
|
142
|
+
k: ...
|
143
|
+
}
|
144
|
+
}
|
145
|
+
12, join:
|
146
|
+
//文件路径合并
|
147
|
+
{
|
148
|
+
id:id
|
149
|
+
type: join
|
150
|
+
data: [...]
|
151
|
+
}
|
152
|
+
13, 函数调用:
|
153
|
+
{
|
154
|
+
id:id
|
155
|
+
type:calls
|
156
|
+
calls: [...]
|
157
|
+
}->
|
158
|
+
[[id, calls], calls]->[calls, method]
|
159
|
+
|
160
|
+
|
161
|
+
运行:
|
162
|
+
python -m buildz ioc 文件夹路径 数据id
|
163
|
+
"""
|
164
|
+
|
165
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
text=
|
3
|
+
r"""在json格式基础上加了些其他东西,让配置写起来更简单:
|
4
|
+
1,字符串可以不用引号括起来,程序判断字段不是整数,小数,布尔型等类型后,当字段是字符串
|
5
|
+
2,可以写注释,//,#,/**/, ###...###,其中/*note*/和###note###是多行注释
|
6
|
+
3,分号;和逗号,和换行\n等价,等于号=和冒号:等价,括号()和中括号[]等价
|
7
|
+
4,加了python的字符串书写方式:"...", '...', r"...",r'...', r'''...'''
|
8
|
+
5,输出格式化
|
9
|
+
6,可配置化
|
10
|
+
|
11
|
+
运行以下命令会打印文件名格式化后的样式:
|
12
|
+
python -m buildz xf 文件名
|
13
|
+
|
14
|
+
比如:
|
15
|
+
|
16
|
+
文件test.js:
|
17
|
+
---------
|
18
|
+
{
|
19
|
+
name: 测试配置
|
20
|
+
data: [
|
21
|
+
(1,.2,.03,4e-4,500)
|
22
|
+
{
|
23
|
+
// 中文当key
|
24
|
+
代号=嘿嘿
|
25
|
+
age = ???
|
26
|
+
# 字符串里有特殊符合,还是要用引号括起来
|
27
|
+
'a:b':"{c,d,e,f}"
|
28
|
+
}
|
29
|
+
]
|
30
|
+
}
|
31
|
+
---------
|
32
|
+
运行:
|
33
|
+
python -m buildz xf test.js
|
34
|
+
"""
|
35
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
from buildz import xf, argx, pyz, ioc, fz
|
3
|
+
from os.path import dirname, join
|
4
|
+
class Help:
|
5
|
+
def __init__(self, dp, fp):
|
6
|
+
fp = join(dp, fp)
|
7
|
+
self.text = xf.loads(xf.fread(fp))['text']
|
8
|
+
def deal(self):
|
9
|
+
print(self.text)
|
10
|
+
|
11
|
+
pass
|
12
|
+
class Deal:
|
13
|
+
def __init__(self, conf, deals, default):
|
14
|
+
self.deals = {}
|
15
|
+
self.default = default
|
16
|
+
for md in deals:
|
17
|
+
self.deals[md] = {}
|
18
|
+
refs = deals[md]
|
19
|
+
for key in refs:
|
20
|
+
ref = refs[key]
|
21
|
+
obj = conf.get(ref)
|
22
|
+
self.deals[md][key] = obj
|
23
|
+
def run(self):
|
24
|
+
args, maps = argx.fetch()
|
25
|
+
if len(args)==0:
|
26
|
+
return self.default.deal()
|
27
|
+
md = args[0]
|
28
|
+
help = "h" in maps or "help" in maps
|
29
|
+
key = "deal" if not help else "help"
|
30
|
+
obj = self.deals[md][key]
|
31
|
+
obj.deal()
|
32
|
+
|
33
|
+
pass
|
34
|
+
dp = dirname(__file__)
|
35
|
+
def test():
|
36
|
+
fps = fz.search(join(dp, 'res', 'conf'), ".*\.js")
|
37
|
+
confs = ioc.build()
|
38
|
+
confs.add_fps(fps)
|
39
|
+
confs.get("run")
|
40
|
+
|
41
|
+
pass
|
42
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
from buildz import xf, argx, pyz, ioc
|
3
|
+
|
4
|
+
class Deal:
|
5
|
+
def deal(self):
|
6
|
+
args, maps = argx.fetch()
|
7
|
+
if len(args)<2:
|
8
|
+
print("need params 1 to be filepath")
|
9
|
+
return
|
10
|
+
fp = args[1]
|
11
|
+
obj = xf.loads(xf.fread(fp))
|
12
|
+
s = xf.dumps(obj, format=1, deep=1)
|
13
|
+
print(s)
|
14
|
+
pass
|
15
|
+
|
16
|
+
pass
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
import os
|
3
|
+
#列出文件夹下所有文件和文件更新时间
|
4
|
+
#文件访问处理方法
|
5
|
+
#建议visit读取文件
|
6
|
+
#catch处理目录访问异常
|
7
|
+
class FileDeal:
|
8
|
+
def __init__(self, *argv, **maps):
|
9
|
+
self.init(*argv, **maps)
|
10
|
+
def result(self):
|
11
|
+
return None
|
12
|
+
def init(self, *argv, **maps):
|
13
|
+
pass
|
14
|
+
def work(self, *argv, **maps):
|
15
|
+
return self.dirs(*argv, **maps)
|
16
|
+
def dirs(self, filepath, depth = 0):
|
17
|
+
dirs(filepath, self, depth)
|
18
|
+
return self.result()
|
19
|
+
def visit(self, filepath, isdir, depth):
|
20
|
+
return True
|
21
|
+
def catch(self, filepath, isdir, depth, exp):
|
22
|
+
pass
|
23
|
+
def deal(self, filepath, isdir, depth, exp = None):
|
24
|
+
if exp is None:
|
25
|
+
return self.visit(filepath, isdir, depth)
|
26
|
+
else:
|
27
|
+
return self.catch(filepath, isdir, depth, exp)
|
28
|
+
def __call__(self, *argv, **maps):
|
29
|
+
return self.deal(*argv, **maps)
|
30
|
+
|
31
|
+
pass
|
32
|
+
#遍历文件/文件夹filepath
|
33
|
+
def dirs(filepath, fc=FileDeal(), depth = 0):
|
34
|
+
isdir = os.path.isdir(filepath)
|
35
|
+
visit = fc(filepath, isdir, depth)
|
36
|
+
if isdir and visit:
|
37
|
+
try:
|
38
|
+
files = os.listdir(filepath)
|
39
|
+
except Exception as exp:
|
40
|
+
fc(filepath, isdir, depth, exp)
|
41
|
+
return
|
42
|
+
files = [os.path.join(filepath, file) for file in files]
|
43
|
+
[dirs(fp, fc, depth+1) for fp in files]
|
44
|
+
|
45
|
+
pass
|
46
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#coding=utf-8
|
2
|
+
|
3
|
+
from . import dirz
|
4
|
+
|
5
|
+
import re
|
6
|
+
class ListsDeal(dirz.FileDeal):
|
7
|
+
def result(self):
|
8
|
+
return self.fps, self.errors
|
9
|
+
def init(self):
|
10
|
+
super().init()
|
11
|
+
self.fps = []
|
12
|
+
self.errors = []
|
13
|
+
def visit(self, fp, isdir, depth):
|
14
|
+
self.fps.append([fp, isdir])
|
15
|
+
return True
|
16
|
+
def catch(self, fp, isdir, depth, exp):
|
17
|
+
self.errors.append([fp, isdir, exp])
|
18
|
+
|
19
|
+
pass
|
20
|
+
|
21
|
+
class FileSearchDeal(dirz.FileDeal):
|
22
|
+
def init(self, pt_fp=None, pt = None):
|
23
|
+
super().init()
|
24
|
+
self.pt_fp = pt_fp
|
25
|
+
if type(pt) == str:
|
26
|
+
pt = pt.encode()
|
27
|
+
self.pt = pt
|
28
|
+
self.rst = []
|
29
|
+
def result(self):
|
30
|
+
return self.rst
|
31
|
+
def visit(self, filepath, isdir, depth):
|
32
|
+
if isdir:
|
33
|
+
return True
|
34
|
+
if self.pt_fp is not None and len(re.findall(self.pt_fp, filepath))==0:
|
35
|
+
return False
|
36
|
+
if self.pt is not None:
|
37
|
+
try:
|
38
|
+
with open(filepath, 'rb') as f:
|
39
|
+
s = f.read()
|
40
|
+
except Exception as exp:
|
41
|
+
print("fread exp in :", filepath, "exp:", exp)
|
42
|
+
return False
|
43
|
+
if len(re.findall(self.pt, s))==0:
|
44
|
+
return False
|
45
|
+
#print("find:", filepath)
|
46
|
+
self.rst.append(filepath)
|
47
|
+
return False
|
48
|
+
def catch(self, filepath, isdir, depth, exp):
|
49
|
+
print(f"exp in {filepath} isdir={isdir}: {exp}")
|
50
|
+
pass
|
51
|
+
|
52
|
+
pass
|
53
|
+
|
54
|
+
|
55
|
+
def lists(fp):
|
56
|
+
return ListsDeal().dirs(fp)
|
57
|
+
|
58
|
+
pass
|
59
|
+
def search(dp, pt_fp = None, pt = None):
|
60
|
+
return FileSearchDeal(pt_fp, pt).dirs(dp)
|
61
|
+
|
62
|
+
pass
|