buildz 0.4.7__tar.gz → 0.4.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.4.7/buildz.egg-info → buildz-0.4.9}/PKG-INFO +1 -1
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/myers/deal.py +11 -3
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/myers.js +4 -2
- {buildz-0.4.7 → buildz-0.4.9}/buildz/tz/__init__.py +1 -1
- {buildz-0.4.7 → buildz-0.4.9}/buildz/tz/myers_diff.py +44 -6
- {buildz-0.4.7 → buildz-0.4.9/buildz.egg-info}/PKG-INFO +1 -1
- {buildz-0.4.7 → buildz-0.4.9}/setup.py +1 -1
- {buildz-0.4.7 → buildz-0.4.9}/LICENSE +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/MANIFEST.in +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/README.md +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/__init__.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/__main__.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/argx.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/ioc/deal.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/ioc/help.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/myers/help.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/ioc.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/main.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/myers.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/search.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/xf.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/default.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/ioc.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/search.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/xf.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/test.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/search/deal.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/search/help.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/test.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/xf/deal.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/xf/help.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/__init__.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/dirz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/fio.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/lsf.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/__init__.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/init.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc/base.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc/conf.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc/confs.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/base.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/call.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/calls.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/demo.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/env.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/ioc.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/join.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/list.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/map.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/mcall.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/obj.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/ovar.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/ref.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/val.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/var.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/pyz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/__init__.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/file.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/base.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/buffer.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/listz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/lr.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/lrval.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/mapz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/nextz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/reval.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/setz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/spc.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/spt.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/strz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/exp.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/item.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/mg.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/pos.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/mapz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/read.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/write.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/base.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/conf.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/jsonval.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/listz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/mapz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/reval.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/strz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/itemz.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/mg.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/xargs.py +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz.egg-info/SOURCES.txt +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz.egg-info/dependency_links.txt +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/buildz.egg-info/top_level.txt +0 -0
- {buildz-0.4.7 → buildz-0.4.9}/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.9
|
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
|
@@ -10,7 +10,10 @@ class Deal:
|
|
10
10
|
opt = args[1]
|
11
11
|
fp1 = args[2]
|
12
12
|
fp2 = args[3]
|
13
|
-
|
13
|
+
if len(args)>4:
|
14
|
+
fp_step = args[4]
|
15
|
+
else:
|
16
|
+
fp_step = "steps.diff"
|
14
17
|
mark_encode = argx.get(maps, 'e', 1)
|
15
18
|
mark_txt = argx.get(maps, 't', None)
|
16
19
|
if mark_txt:
|
@@ -19,13 +22,16 @@ class Deal:
|
|
19
22
|
nspt = argx.get(maps, 'ns', 0)
|
20
23
|
if nspt:
|
21
24
|
spt = 0
|
22
|
-
|
23
|
-
if opt == 'diff':
|
25
|
+
if opt == 'diff' or opt == 'count':
|
24
26
|
bs1 = fz.read(fp1).decode("utf-8")
|
25
27
|
bs2 = fz.read(fp2).decode("utf-8")
|
26
28
|
#bs1 = b"text z xxxyzijsa"
|
27
29
|
#bs2 = b"test xxxx afzjcovijsax"
|
28
30
|
stps = tz.m_steps(bs1, bs2,split=spt)
|
31
|
+
if opt == 'count':
|
32
|
+
cnt = tz.m_count(stps)
|
33
|
+
print(f"diff from {fp1} to {fp2}: {cnt}")
|
34
|
+
return
|
29
35
|
if mark_encode:
|
30
36
|
stps = b"e"+tz.m_encode(stps)
|
31
37
|
else:
|
@@ -36,6 +42,7 @@ class Deal:
|
|
36
42
|
stps = "t"+xf.dumps(stps)
|
37
43
|
stps = stps.encode()
|
38
44
|
fz.write(fp_step, stps)
|
45
|
+
print("done diff")
|
39
46
|
elif opt == 'update':
|
40
47
|
bs1 = fz.read(fp1).decode("utf-8")
|
41
48
|
bs_step = fz.read(fp_step)
|
@@ -47,6 +54,7 @@ class Deal:
|
|
47
54
|
stps = xf.loads(bs_step.decode())
|
48
55
|
bs2 = tz.m_update(bs1, stps,split=spt).encode("utf-8")
|
49
56
|
fz.write(fp2, bs2)
|
57
|
+
print("done update")
|
50
58
|
else:
|
51
59
|
print(f"unexpect opt: {opt}")
|
52
60
|
pass
|
@@ -2,10 +2,11 @@
|
|
2
2
|
text=
|
3
3
|
r"""
|
4
4
|
文件比较(模仿git diff):
|
5
|
-
python -m buildz myers 操作 文件路径1 文件路径2 step文件 [+e/t/s/ns]
|
5
|
+
python -m buildz myers 操作 文件路径1 文件路径2 [step文件] [+e/t/s/ns]
|
6
6
|
操作:
|
7
7
|
diff: 计算文件1到文件2需要的步骤,保存到step文件
|
8
8
|
update: 文件1根据step文件修改,保存到文件2
|
9
|
+
count: 计算文件1到文件2的差异
|
9
10
|
可选:
|
10
11
|
+e: step文件字节保存(默认)
|
11
12
|
+t: step文件字符串保存
|
@@ -19,10 +20,11 @@ r"""
|
|
19
20
|
text.en=
|
20
21
|
r"""
|
21
22
|
file compare:
|
22
|
-
python -m buildz myers opt file1 file2 step_file
|
23
|
+
python -m buildz myers opt file1 file2 [step_file] [+e/t/s/ns]
|
23
24
|
opt:
|
24
25
|
diff: calucate steps from file1 to fiel2, save into step_file
|
25
26
|
update: update file1 by step_file, save into file2
|
27
|
+
count: count differenct from file1 to file2
|
26
28
|
options:
|
27
29
|
+e: step_file save in bytes(default)
|
28
30
|
+t: step_file save by string
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#author: Zzz, emails: 1174534295@qq.com, 1309458652@qq.com
|
3
3
|
|
4
4
|
# 代码差异
|
5
|
-
from .myers_diff import update as m_update, myers as m_steps, encode as m_encode, decode as m_decode
|
5
|
+
from .myers_diff import update as m_update, myers as m_steps, encode as m_encode, decode as m_decode,count as m_count
|
6
6
|
|
7
7
|
"""
|
8
8
|
工具模块
|
@@ -11,15 +11,36 @@ def encode(steps, as_str = False):
|
|
11
11
|
步骤列表转bytes/str
|
12
12
|
"""
|
13
13
|
rst = b""
|
14
|
+
# 加减的长度设置最多2**15-1,保留1位当作“加/减”,4位整数当字符串位置索引
|
15
|
+
max16 = 2**15-1
|
14
16
|
for step in steps:
|
15
17
|
if step[0] == ACT_ADD:
|
16
18
|
bs = step[2]
|
17
19
|
if type(bs) == str:
|
18
20
|
bs = bs.encode("utf-8")
|
19
|
-
|
21
|
+
bs_arr = []
|
22
|
+
while len(bs)>max16:
|
23
|
+
cut = bs[:max16]
|
24
|
+
bs = bs[max16:]
|
25
|
+
bs_arr.append(cut)
|
26
|
+
if len(bs)>0:
|
27
|
+
bs_arr.append(bs)
|
28
|
+
for bs in bs_arr:
|
29
|
+
obj = struct.pack(">HI", len(bs)*2+1, step[1])+bs
|
30
|
+
rst+=obj
|
20
31
|
else:
|
21
|
-
|
22
|
-
|
32
|
+
s1 = step[1]
|
33
|
+
s2 = step[2]
|
34
|
+
nexts = [s1]
|
35
|
+
while (s2-s1)>max16:
|
36
|
+
nexts.append(s1+max16)
|
37
|
+
s1+=max16+1
|
38
|
+
if s1<=s2:
|
39
|
+
nexts.append(s2)
|
40
|
+
for i in range(1,len(nexts)):
|
41
|
+
obj = struct.pack(">HI", (nexts[i]-nexts[i-1])*2, nexts[i-1])
|
42
|
+
rst+=obj
|
43
|
+
#rst+=obj
|
23
44
|
if as_str:
|
24
45
|
rst = base64.b64encode(rst).decode()
|
25
46
|
return rst
|
@@ -31,19 +52,22 @@ def decode(obj):
|
|
31
52
|
"""
|
32
53
|
if type(obj) == str:
|
33
54
|
obj = base64.b64decode(obj)
|
34
|
-
ni =
|
55
|
+
ni = 2+4
|
35
56
|
rst = []
|
36
57
|
while len(obj)>0:
|
37
58
|
bs = obj[:ni]
|
38
59
|
obj = obj[ni:]
|
39
|
-
|
60
|
+
v2, base = struct.unpack(">HI", bs)
|
61
|
+
act = v2%2
|
62
|
+
c = v2//2
|
63
|
+
#act, base, c = struct.unpack(">HI", bs)
|
40
64
|
if act == 1:
|
41
65
|
bs = obj[:c]
|
42
66
|
obj = obj[c:]
|
43
67
|
s = bs.decode("utf-8")
|
44
68
|
tmp = [ACT_ADD, base, s]
|
45
69
|
else:
|
46
|
-
tmp = [ACT_DEL, base, c]
|
70
|
+
tmp = [ACT_DEL, base, base+c]
|
47
71
|
rst.append(tmp)
|
48
72
|
return rst
|
49
73
|
|
@@ -92,6 +116,20 @@ def combine(steps):
|
|
92
116
|
rst.append(step)
|
93
117
|
return rst
|
94
118
|
|
119
|
+
pass
|
120
|
+
def count(steps):
|
121
|
+
cnt = 0
|
122
|
+
cadd,cdel = 0,0
|
123
|
+
#print(f"steps: {len(steps)}")
|
124
|
+
for step in steps:
|
125
|
+
if step[0] == ACT_ADD:
|
126
|
+
cnt+=len(step[2])
|
127
|
+
cadd+=len(step[2])
|
128
|
+
else:
|
129
|
+
cnt+=1+step[2]-step[1]
|
130
|
+
cdel +=1+step[2]-step[1]
|
131
|
+
return cnt#,cadd,cdel
|
132
|
+
|
95
133
|
pass
|
96
134
|
def update(s, steps, split=1):
|
97
135
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: buildz
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.9
|
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
|
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
|