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.
Files changed (110) hide show
  1. {buildz-0.4.7/buildz.egg-info → buildz-0.4.9}/PKG-INFO +1 -1
  2. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/myers/deal.py +11 -3
  3. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/myers.js +4 -2
  4. {buildz-0.4.7 → buildz-0.4.9}/buildz/tz/__init__.py +1 -1
  5. {buildz-0.4.7 → buildz-0.4.9}/buildz/tz/myers_diff.py +44 -6
  6. {buildz-0.4.7 → buildz-0.4.9/buildz.egg-info}/PKG-INFO +1 -1
  7. {buildz-0.4.7 → buildz-0.4.9}/setup.py +1 -1
  8. {buildz-0.4.7 → buildz-0.4.9}/LICENSE +0 -0
  9. {buildz-0.4.7 → buildz-0.4.9}/MANIFEST.in +0 -0
  10. {buildz-0.4.7 → buildz-0.4.9}/README.md +0 -0
  11. {buildz-0.4.7 → buildz-0.4.9}/buildz/__init__.py +0 -0
  12. {buildz-0.4.7 → buildz-0.4.9}/buildz/__main__.py +0 -0
  13. {buildz-0.4.7 → buildz-0.4.9}/buildz/argx.py +0 -0
  14. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/ioc/deal.py +0 -0
  15. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/ioc/help.py +0 -0
  16. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/myers/help.py +0 -0
  17. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/ioc.js +0 -0
  18. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/main.js +0 -0
  19. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/myers.js +0 -0
  20. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/search.js +0 -0
  21. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/conf/xf.js +0 -0
  22. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/default.js +0 -0
  23. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/ioc.js +0 -0
  24. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/search.js +0 -0
  25. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/help/xf.js +0 -0
  26. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/res/test.js +0 -0
  27. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/search/deal.py +0 -0
  28. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/search/help.py +0 -0
  29. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/test.py +0 -0
  30. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/xf/deal.py +0 -0
  31. {buildz-0.4.7 → buildz-0.4.9}/buildz/demo/xf/help.py +0 -0
  32. {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/__init__.py +0 -0
  33. {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/dirz.py +0 -0
  34. {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/fio.py +0 -0
  35. {buildz-0.4.7 → buildz-0.4.9}/buildz/fz/lsf.py +0 -0
  36. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/__init__.py +0 -0
  37. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/init.py +0 -0
  38. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc/base.py +0 -0
  39. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc/conf.py +0 -0
  40. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc/confs.py +0 -0
  41. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/base.py +0 -0
  42. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/call.py +0 -0
  43. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/calls.py +0 -0
  44. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/call_defaults.js +0 -0
  45. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/call_lists.js +0 -0
  46. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/calls_defaults.js +0 -0
  47. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/calls_lists.js +0 -0
  48. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/deals.js +0 -0
  49. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/env_lists.js +0 -0
  50. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/ioc_lists.js +0 -0
  51. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/join_lists.js +0 -0
  52. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/list_lists.js +0 -0
  53. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/map_lists.js +0 -0
  54. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/mcall_defaults.js +0 -0
  55. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/mcall_lists.js +0 -0
  56. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_cst_lists.js +0 -0
  57. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_defaults.js +0 -0
  58. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_lists.js +0 -0
  59. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/obj_set_lists.js +0 -0
  60. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/ovar_lists.js +0 -0
  61. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/ref_lists.js +0 -0
  62. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/conf/var_lists.js +0 -0
  63. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/demo.py +0 -0
  64. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/env.py +0 -0
  65. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/ioc.py +0 -0
  66. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/join.py +0 -0
  67. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/list.py +0 -0
  68. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/map.py +0 -0
  69. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/mcall.py +0 -0
  70. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/obj.py +0 -0
  71. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/ovar.py +0 -0
  72. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/ref.py +0 -0
  73. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/val.py +0 -0
  74. {buildz-0.4.7 → buildz-0.4.9}/buildz/ioc/ioc_deal/var.py +0 -0
  75. {buildz-0.4.7 → buildz-0.4.9}/buildz/pyz.py +0 -0
  76. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/__init__.py +0 -0
  77. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/file.py +0 -0
  78. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/base.py +0 -0
  79. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/buffer.py +0 -0
  80. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/listz.py +0 -0
  81. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/lr.py +0 -0
  82. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/lrval.py +0 -0
  83. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/mapz.py +0 -0
  84. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/nextz.py +0 -0
  85. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/reval.py +0 -0
  86. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/setz.py +0 -0
  87. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/spc.py +0 -0
  88. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/spt.py +0 -0
  89. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/deal/strz.py +0 -0
  90. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/exp.py +0 -0
  91. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/item.py +0 -0
  92. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/mg.py +0 -0
  93. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/loader/pos.py +0 -0
  94. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/mapz.py +0 -0
  95. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/read.py +0 -0
  96. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/write.py +0 -0
  97. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/base.py +0 -0
  98. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/conf.py +0 -0
  99. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/jsonval.py +0 -0
  100. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/listz.py +0 -0
  101. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/mapz.py +0 -0
  102. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/reval.py +0 -0
  103. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/deal/strz.py +0 -0
  104. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/itemz.py +0 -0
  105. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/writer/mg.py +0 -0
  106. {buildz-0.4.7 → buildz-0.4.9}/buildz/xf/xargs.py +0 -0
  107. {buildz-0.4.7 → buildz-0.4.9}/buildz.egg-info/SOURCES.txt +0 -0
  108. {buildz-0.4.7 → buildz-0.4.9}/buildz.egg-info/dependency_links.txt +0 -0
  109. {buildz-0.4.7 → buildz-0.4.9}/buildz.egg-info/top_level.txt +0 -0
  110. {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.7
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
- fp_step = args[4]
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
- print(f"SPT:{spt}")
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
- obj = struct.pack(">BII", 1, step[1], len(bs))+bs
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
- obj = struct.pack(">BII", 0, step[1], step[2])
22
- rst+=obj
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 = 1+4+4
55
+ ni = 2+4
35
56
  rst = []
36
57
  while len(obj)>0:
37
58
  bs = obj[:ni]
38
59
  obj = obj[ni:]
39
- act, base, c = struct.unpack(">BII", bs)
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.7
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
@@ -7,7 +7,7 @@ from setuptools import setup, find_packages
7
7
 
8
8
  setup(
9
9
  name = 'buildz',
10
- version = '0.4.7',
10
+ version = '0.4.9',
11
11
  keywords='buildz',
12
12
  long_description=open('README.md', 'r', encoding="utf-8").read(),
13
13
  long_description_content_type='text/markdown',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes