@@ -63,7 +63,7 @@ def define_new_naming_schema(self):
6363 self .o_schema .show ()
6464
6565
66- class NamingSchemaDefinition ( object ) :
66+ class NamingSchemaDefinition :
6767 ext = ''
6868 list_files = []
6969 working_dir = ''
@@ -100,12 +100,16 @@ def new_naming_schema(self):
100100 else :
101101 prefix = self .basename_selected_by_user .value
102102
103- post_index_separator = self .box5 .children [1 ].value
104103 nbr_digits = self .box7 .children [1 ].value
104+ if self .suffix_box2 .children [1 ].value :
105+ suffix = self .suffix_box2 .children [2 ].value
106+ else :
107+ suffix = nbr_digits * '#'
105108
106109 ext = self .box9 .children [1 ].value
107110
108- schema = prefix + post_index_separator + nbr_digits * '#' + ext
111+ post_index_separator = self .box5 .children [1 ].value
112+ schema = prefix + post_index_separator + suffix + ext
109113 return schema
110114
111115 def pre_index_text_changed (self , sender ):
@@ -130,6 +134,20 @@ def changed_use_new_prefix_name(self, value=[]):
130134 self .new_prefix_text_widget .disabled = not _value
131135 self .post_text_changed (None )
132136
137+ def changed_use_digit_suffix_name (self , value = []):
138+ self .user_new_suffix_widget .value = not value ['new' ]
139+ self .new_suffix_text_widget .disabled = value ['new' ]
140+ self .post_text_changed (None )
141+
142+ def changed_use_new_suffix_name (self , value = []):
143+ if value == []:
144+ _value = self .user_new_suffix_widget .value
145+ else :
146+ _value = value ['new' ]
147+ self .use_digit_suffix_widget .value = not _value
148+ self .new_suffix_text_widget .disabled = not _value
149+ self .post_text_changed (None )
150+
133151 def get_basename_of_current_dropdown_selected_file (self , is_with_ext = False ):
134152 full_file_name = self .random_input_checkbox .value
135153 if is_with_ext :
@@ -193,15 +211,15 @@ def show(self):
193211 # new naming schema
194212 box_text_width = '10%'
195213 self .box1 = widgets .HBox ([widgets .Label ("New prefix File Name" ,
196- layout = widgets .Layout (width = '10 %' )),
214+ layout = widgets .Layout (width = '20 %' )),
197215 widgets .Checkbox (value = True ,
198216 description = 'Use previous prefix name' ,
199217 layout = widgets .Layout (width = '30%' ))])
200218 self .use_previous_prefix_widget = self .box1 .children [1 ]
201219 self .box1 .children [1 ].observe (self .changed_use_previous_prefix_name , names = 'value' )
202220
203221 self .box1b = widgets .HBox ([widgets .Label ("" ,
204- layout = widgets .Layout (width = '10 %' )),
222+ layout = widgets .Layout (width = '20 %' )),
205223 widgets .Checkbox (value = False ,
206224 description = 'Use new prefix' ,
207225 layout = widgets .Layout (width = '20%' )),
@@ -213,6 +231,30 @@ def show(self):
213231 self .user_new_prefix_widget = self .box1b .children [1 ]
214232 self .user_new_prefix_widget .observe (self .changed_use_new_prefix_name , names = 'value' )
215233
234+
235+
236+
237+ self .suffix_box1 = widgets .HBox ([widgets .Label ("New suffix File Name" ,
238+ layout = widgets .Layout (width = '20%' )),
239+ widgets .Checkbox (value = True ,
240+ description = 'Use digit suffix' ,
241+ layout = widgets .Layout (width = '30%' ))])
242+ self .use_digit_suffix_widget = self .suffix_box1 .children [1 ]
243+ self .suffix_box1 .children [1 ].observe (self .changed_use_digit_suffix_name , names = 'value' )
244+
245+ self .suffix_box2 = widgets .HBox ([widgets .Label ("" ,
246+ layout = widgets .Layout (width = '20%' )),
247+ widgets .Checkbox (value = False ,
248+ description = 'Use new suffix' ,
249+ layout = widgets .Layout (width = '20%' )),
250+ widgets .Text (value = '' ,
251+ disabled = True ,
252+ layout = widgets .Layout (width = '25%' ))])
253+ self .suffix_box2 .children [2 ].observe (self .changed_use_new_suffix_name , names = 'value' )
254+ self .user_new_suffix_widget = self .suffix_box2 .children [1 ]
255+ self .new_suffix_text_widget = self .suffix_box2 .children [2 ]
256+ self .user_new_suffix_widget .observe (self .changed_use_new_suffix_name , names = 'value' )
257+
216258 self .box5 = widgets .HBox ([widgets .Label ("New Index Separator" ,
217259 layout = widgets .Layout (width = '15%' )),
218260 widgets .Text (value = '_' ,
@@ -245,7 +287,8 @@ def show(self):
245287 self .box8 .children [1 ].on_trait_change (self .post_text_changed , 'value' )
246288 self .box9 .children [1 ].on_trait_change (self .post_text_changed , 'value' )
247289
248- after = widgets .VBox ([self .box1 , self .box1b , self .box5 , self .box7 , self .box8 , self .box9 , self .box6 ])
290+ after = widgets .VBox ([self .box1 , self .box1b , self .suffix_box1 , self .suffix_box2 ,
291+ self .box5 , self .box7 , self .box8 , self .box9 , self .box6 ])
249292
250293 accordion = widgets .Accordion (children = [before , after ])
251294 accordion .set_title (0 , 'Current Schema Name' )
@@ -276,6 +319,12 @@ def demo_output_file_name(self):
276319 input_file = self .get_basename_of_current_dropdown_selected_file (is_with_ext = False )
277320 self .output_ui_2 .children [1 ].value = input_file
278321
322+
323+ new_name = self .box6 .children [1 ].value
324+ self .output_ui_3 .children [1 ].value = new_name
325+
326+ return
327+
279328 old_index_separator = self .get_old_index_separator ()
280329 new_prefix_name = self .get_new_prefix_name ()
281330 new_index_separator = self .get_new_index_separator ()
@@ -284,6 +333,11 @@ def demo_output_file_name(self):
284333 ext = self .box9 .children [1 ].value
285334 [start_index , end_index ] = self .int_range_slider .value
286335
336+ print (f"{ old_index_separator = } , { new_prefix_name = } " )
337+ print (f"{ new_index_separator = } , { new_number_of_digits = } , { offset = } , { ext = } " )
338+ print (f"{ start_index = } , { end_index = } " )
339+
340+
287341 try :
288342 display (HTML ("""
289343 <style>
@@ -342,32 +396,47 @@ def get_new_number_of_digits(self):
342396 return self .box7 .children [1 ].value
343397
344398 def generate_new_file_name (self , old_file_name ,
399+ file_index ,
345400 start_index ,
346401 end_index ,
347402 old_index_separator ,
348403 new_prefix_name ,
349404 new_index_separator ,
350405 new_number_of_digits ,
351406 offset ,
407+ suffix_flag ,
408+ suffix ,
352409 ext ):
353410
411+ file_index += offset
412+
354413 [_pre_extension , _ ] = os .path .splitext (old_file_name )
355- _name_separated = _pre_extension .split (old_index_separator )
414+ # _name_separated = _pre_extension.split(old_index_separator)
415+ # print(f"Name separated: {_name_separated}")
356416
357417 if self .user_new_prefix_widget .value == True :
358418 prefix = new_prefix_name
359419 else :
360420 prefix = old_file_name [start_index : end_index + 1 ]
361421
362- try :
363- _index = int (_name_separated [- 1 ]) + offset
422+ # try:
423+ # print(f"Trying to parse index from {_name_separated[-1]}")
424+ # _index = int(_name_separated[-1]) + offset
425+ # print(f"Parsed index: {_index}")
426+ if suffix_flag :
364427 new_name = prefix + new_index_separator + \
365- '{:0{}}' .format (_index , new_number_of_digits ) + \
366- ext
367- except ValueError :
368- _index = _name_separated [- 1 ]
428+ '{:0{}}' .format (file_index , new_number_of_digits ) + \
429+ new_index_separator + suffix + ext
430+ else :
369431 new_name = prefix + new_index_separator + \
370- _index + ext
432+ '{:0{}}' .format (file_index , new_number_of_digits ) + ext
433+
434+ # except ValueError:
435+ # # print(f"Could not parse index from {_name_separated[-1]}")
436+ # # _index = _name_separated[-1]
437+ # new_name = prefix + new_index_separator + \
438+ # _index + ext
439+ # print(f"New name without index: {new_name}")
371440
372441 return new_name
373442
@@ -386,19 +455,30 @@ def get_dict_old_new_filenames(self):
386455 offset = self .box8 .children [1 ].value
387456 ext = self .box9 .children [1 ].value
388457
458+ suffix_flag = self .suffix_box2 .children [1 ].value
459+ if suffix_flag :
460+ suffix = self .suffix_box2 .children [2 ].value
461+ else :
462+ suffix = ""
463+
389464 list_of_input_basename_files = [os .path .basename (_file ) for _file in list_of_input_files ]
390465
391466 new_list = {}
392467 for _file_index , _file in enumerate (list_of_input_basename_files ):
468+
393469 new_name = self .generate_new_file_name (_file ,
470+ _file_index ,
394471 start_index ,
395472 end_index ,
396473 old_index_separator ,
397474 new_prefix_name ,
398475 new_index_separator ,
399476 new_number_of_digits ,
400477 offset ,
478+ suffix_flag ,
479+ suffix ,
401480 ext )
481+
402482 new_list [list_of_input_files [_file_index ]] = new_name
403483 renaming_result .append ("{} \t --> \t {}" .format (_file , new_name ))
404484
0 commit comments