-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain5.py
62 lines (48 loc) · 1.9 KB
/
main5.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
class MergeFilledRevService:
@classmethod
def read1(cls):
from service.read.filled.glacier_goods_option_dest_aug7_all import MY_REVISIONS_ALL
return MY_REVISIONS_ALL
@classmethod
def read2(cls):
from service.read.filled.glacier_missing_options_out2 import MY_REVISIONS_FIRST
return MY_REVISIONS_FIRST
@classmethod
def read3(cls):
from service.read.filled.glacier_missing_options_out3_filled import MY_REVISIONS_SECOND
return MY_REVISIONS_SECOND
@classmethod
def merge_revs(cls, revs1, revs2, revs3):
res = []
map2 = {rev.goods_option_sno: rev for rev in revs2}
map3 = {rev.goods_option_sno: rev for rev in revs3}
for rev in revs1:
if rev.goods_option_sno in map3:
res.append(map3.get(rev.goods_option_sno))
continue
if rev.goods_option_sno in map2:
res.append(map2.get(rev.goods_option_sno))
continue
res.append(rev)
return res
@classmethod
def _perform_write_as_file(cls, filename: str, revisions):
print('write starts at ', filename)
with open(f'resource/dest/{filename}.py', 'w') as f:
f.write(f'MY_REVISIONS = [\n')
for rev in revisions:
f.write(' ')
f.write(str(rev))
f.write(',')
f.write('\n')
f.write(']')
print('successfully written revisions: ', len(revisions))
revs1 = MergeFilledRevService.read1()
print('revs1: ', len(revs1))
revs2 = MergeFilledRevService.read2()
print('revs2: ', len(revs2))
revs3 = MergeFilledRevService.read3()
print('revs3: ', len(revs3))
merged_revs = MergeFilledRevService.merge_revs(revs1, revs2, revs3)
print('merged_revs: ', len(merged_revs))
MergeFilledRevService._perform_write_as_file('merged_revisions_filled_final', merged_revs)