Skip to content

Commit 7fbfc26

Browse files
authored
Ver 2.5.1e
1 parent 1ab5383 commit 7fbfc26

File tree

3 files changed

+68
-14
lines changed

3 files changed

+68
-14
lines changed

network_sketcher.py

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __init__(self):
4242
self.click_value_3rd = ''
4343
self.click_value_VPN = ''
4444
self.root = TkinterDnD.Tk()
45-
self.root.title("Network Sketcher ver 2.5.1d")
45+
self.root.title("Network Sketcher ver 2.5.1e")
4646
self.root.geometry("510x200+100+100")
4747
icon = tk.PhotoImage(file='ns_logo.png')
4848
self.root.iconphoto(True, icon)
@@ -383,17 +383,15 @@ def click_action_sub1_1(self, click_value,push_array):
383383
self.inFileTxt_92_2_2.delete(0, tkinter.END)
384384
self.inFileTxt_92_2_2.insert(tk.END, iDir + ns_def.return_os_slash() + basename_without_ext + '_backup' + '.xlsx')
385385

386-
# backup attribute meta. Add at ver 2.5.1c
387-
self.attribute_array = ns_def.convert_master_to_array('Master_Data', full_filepath_master, '<<ATTRIBUTE>>')
388-
#print(self.attribute_array)
389-
self.attribute_tuple = ns_def.convert_array_to_tuple(self.attribute_array)
390-
391386
###check Master file open
392387
ns_def.check_file_open(full_filepath_master)
393388

394389
###create backup master file
395390
ns_def.get_backup_filename(full_filepath_master)
396391

392+
# backup attribute meta. Add at ver 2.5.1c
393+
name_changed_before_attribute_array = ns_def.convert_master_to_array('Master_Data', full_filepath_master, '<<ATTRIBUTE>>')
394+
397395
'''Sketch file Sync to Master'''
398396
### run 92-3 for dev , l1_sketch sync with L1_master file
399397
self.click_value = '92-3'
@@ -407,12 +405,64 @@ def click_action_sub1_1(self, click_value,push_array):
407405
self.click_value_2nd = ''
408406
self.click_value_3rd = ''
409407

408+
# add bug fix at ver 2.5.1e
409+
name_mapping = {old_name: new_name for old_name, new_name in self.updated_name_array}
410+
411+
for item in name_changed_before_attribute_array:
412+
if item[0] not in [1, 2]:
413+
current_name = item[1][0]
414+
if current_name in name_mapping:
415+
item[1][0] = name_mapping[current_name]
416+
417+
#print(self.attribute_array)
418+
#print(name_changed_before_attribute_array)
419+
420+
# Step 1: Extract relevant data (filter out [0] == 1 or 2)
421+
self_filtered = [row for row in self.attribute_array if row[0] not in (1, 2)]
422+
name_changed_filtered = [row for row in name_changed_before_attribute_array if row[0] not in (1, 2)]
423+
424+
# Extract the device names for comparison
425+
self_names = {row[1][0] for row in self_filtered} # Set of device names in self
426+
name_changed_names = {row[1][0] for row in name_changed_filtered} # Set of device names in name_changed
427+
428+
# Step 2: Remove items from name_changed_before_attribute_array that do not exist in self_attribute_array
429+
name_changed_filtered = [row for row in name_changed_filtered if row[1][0] in self_names]
430+
431+
# Step 3: Add items from self_attribute_array that do not exist in name_changed_before_attribute_array
432+
for row in self_filtered:
433+
if row[1][0] not in name_changed_names:
434+
#name_changed_filtered.append(row)
435+
modified_row = row.copy()
436+
modified_row[1].append('<END>')
437+
name_changed_filtered.append(modified_row)
438+
439+
# Step 4: Sort by device name ([0][1]) in ascending order
440+
name_changed_filtered.sort(key=lambda x: x[1][0])
441+
442+
# Step 5: Reassign [0] numbers in ascending order
443+
for i, row in enumerate(name_changed_filtered, start=3): # Start numbering from 3
444+
row[0] = i
445+
446+
# Step 6: Combine with unchanged [0] == 1 and 2 rows
447+
last_before_attribute_array = [
448+
row for row in name_changed_before_attribute_array if row[0] in (1, 2)
449+
] + name_changed_filtered
450+
451+
# Output the final result
452+
#print(last_before_attribute_array)
453+
454+
last_before_attribute_tuple = ns_def.convert_array_to_tuple(last_before_attribute_array)
410455
#restore attribute meta. Add at ver 2.5.1c
411456
offset_row = 0
412457
offset_column = 0
413458
worksheet_name = 'Master_Data'
414459
section_write_to = '<<ATTRIBUTE>>'
415-
ns_def.overwrite_excel_meta(self.attribute_tuple, full_filepath_master, worksheet_name, section_write_to, offset_row, offset_column)
460+
461+
before_attribute_array = ns_def.convert_master_to_array('Master_Data', full_filepath_master, '<<ATTRIBUTE>>')
462+
before_attribute_tuple = ns_def.convert_array_to_tuple(before_attribute_array)
463+
ns_def.clear_section_sheet('Master_Data', full_filepath_master, before_attribute_tuple)
464+
465+
ns_def.write_excel_meta(last_before_attribute_tuple, full_filepath_master, worksheet_name, section_write_to, offset_row, offset_column)
416466

417467
# remove exist L3/ file
418468
if os.path.isfile(self.outFileTxt_11_2.get().replace('[MASTER]', '')) == True:

ns_l1_diagram_sync_master.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def __init__(self):
6767

6868
#print('---- replace device name , self.source_position_line_tuple ----')
6969
#print(self.source_position_line_tuple )
70+
#print(self.target_position_line_tuple)
7071

7172
used_source_array = []
7273
for tmp_target_position_line_tuple in self.target_position_line_tuple:
@@ -82,12 +83,11 @@ def __init__(self):
8283
str(self.target_position_line_tuple[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1]+1]) == \
8384
str(self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1]+1]):
8485

85-
#print('[match tuple] ' + str(tmp_source_position_line_tuple) + str(self.source_position_line_tuple[tmp_source_position_line_tuple[0],tmp_source_position_line_tuple[1]])\
86-
# + ' ' + str(self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1]+1]) + ' ' + str(tmp_source_position_line_tuple[1]))
86+
#print('[match tuple] ' + str(tmp_source_position_line_tuple) + str(self.source_position_line_tuple[tmp_source_position_line_tuple[0],tmp_source_position_line_tuple[1]])+ ' ' + str(self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1]+1]) + ' ' + str(tmp_source_position_line_tuple[1]))
8787

8888
# make fix tuple for target
8989
for num in range(20):
90-
if tmp_source_position_line_tuple[1] + num in [7, 8,9,10]:
90+
if tmp_source_position_line_tuple[1] + num in [5,6,7,8,9,10]: # Fixed a bug. at ve 2.5.1e
9191
self.target_position_line_tuple_fix[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1] + num] = self.target_position_line_tuple[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1] + num]
9292
else:
9393
self.target_position_line_tuple_fix[tmp_target_position_line_tuple[0],tmp_target_position_line_tuple[1] + num] = self.source_position_line_tuple[tmp_source_position_line_tuple[0],tmp_source_position_line_tuple[1] + num]
@@ -102,8 +102,7 @@ def __init__(self):
102102
str(self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1]+1]) and \
103103
str(self.target_position_line_tuple[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1]+1]) == \
104104
str(self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1]]):
105-
#print('[match oppsite] ' + str(tmp_source_position_line_tuple) + str(self.target_position_line_tuple[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1]]) + \
106-
# ' '+str(self.target_position_line_tuple[tmp_target_position_line_tuple[0]+1, tmp_target_position_line_tuple[1]]) + ' ' + str(tmp_source_position_line_tuple[1]))
105+
#print('[match oppsite] ' + str(tmp_source_position_line_tuple) + str(self.target_position_line_tuple[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1]]) + ' '+str(self.target_position_line_tuple[tmp_target_position_line_tuple[0]+1, tmp_target_position_line_tuple[1]]) + ' ' + str(tmp_source_position_line_tuple[1]))
107106

108107
# make fix tuple for target
109108
for num in range(20):
@@ -125,9 +124,13 @@ def __init__(self):
125124
if tmp_source_position_line_tuple[1] + num in [17, 18, 19, 20]:
126125
tmp_i = -4
127126
self.target_position_line_tuple_fix[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1] + num + tmp_i] = self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1] + num]
128-
if tmp_source_position_line_tuple[1] + num in [1, 2,5, 6, 11, 12]:
127+
# bug fix. at ver 2.5.1e
128+
if tmp_source_position_line_tuple[1] + num in [1, 2, 11, 12]:
129129
tmp_i = 0
130130
self.target_position_line_tuple_fix[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1] + num + tmp_i] = self.source_position_line_tuple[tmp_source_position_line_tuple[0], tmp_source_position_line_tuple[1] + num]
131+
if tmp_source_position_line_tuple[1] + num in [5, 6]:
132+
tmp_i = 0
133+
self.target_position_line_tuple_fix[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1] + num + tmp_i] = self.target_position_line_tuple[tmp_target_position_line_tuple[0], tmp_target_position_line_tuple[1] + num]
131134

132135
# mark used line
133136
used_source_array.append(tmp_source_position_line_tuple[0])

ns_l1_master_create.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,12 @@ def __init__(self):
171171
### GET Shape
172172
if 'AUTO_SHAPE' in str(shp.shape_type) and str(shp.text) != '':
173173
# check updated device '/n' and append array ver 1.1
174-
if '\n' in str(shp.text):
174+
if '\n' in str(shp.text) and self.click_value != '1-4':
175175
idx = str(shp.text).find('\n')
176176
self.updated_name_array.append([str(shp.text)[:idx],str(shp.text)[idx + 1:] ])
177177
tmp_shape_array.append([str(shp.text)[idx + 1:], shp.left, shp.top, shp.width, shp.height, shp.rotation, i ])
178178
else:
179+
shp.text = shp.text.replace('\n', '_')
179180
tmp_shape_array.append([shp.text, shp.left, shp.top, shp.width, shp.height, shp.rotation, i])
180181

181182
### Add multiple _AIR_ # Add Ver 1.11

0 commit comments

Comments
 (0)