diff options
Diffstat (limited to 'source/blender/makesrna/rna_cleanup/rna_cleaner.py')
-rwxr-xr-x | source/blender/makesrna/rna_cleanup/rna_cleaner.py | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/source/blender/makesrna/rna_cleanup/rna_cleaner.py b/source/blender/makesrna/rna_cleanup/rna_cleaner.py index 3f68ec4a955..f39ee586237 100755 --- a/source/blender/makesrna/rna_cleanup/rna_cleaner.py +++ b/source/blender/makesrna/rna_cleanup/rna_cleaner.py @@ -57,7 +57,7 @@ def check_commandline(): usage() if sys.argv[1] == '-h': help() - elif not (sys.argv[1][-4:] == '.txt' or sys.argv[1][-3:] == '.py'): + elif not (sys.argv[1].endswith(".txt") or sys.argv[1].endswith(".py")): print ('\nBad input file extension... exiting.') usage() else: @@ -147,7 +147,7 @@ def get_props_from_txt(input_filename): changed = check_if_changed(bfrom, bto) # lists formatting - props=[comment, changed, bclass, bfrom, bto, kwcheck, btype, description] + props=[comment, changed, bclass, bfrom, bto, kwcheck, btype, repr(description)] props_list.append(props) props_length_max=list(map(max,zip(props_length_max,list(map(len,props))))) @@ -164,9 +164,10 @@ def get_props_from_py(input_filename): props_length_max = [0 for i in rna_api[0]] # this way if the vector will take more elements we are safe for index,props in enumerate(rna_api): - [comment, changed, bclass, bfrom, bto, kwcheck, btype, description] = props + comment, changed, bclass, bfrom, bto, kwcheck, btype, description = props kwcheck = check_prefix(bto) # keyword-check changed = check_if_changed(bfrom, bto) # changed? + description = repr(description) rna_api[index] = [comment, changed, bclass, bfrom, bto, kwcheck, btype, description] props_length = list(map(len,props)) # lengths props_length_max = list(map(max,zip(props_length_max,props_length))) # max lengths @@ -174,9 +175,9 @@ def get_props_from_py(input_filename): def get_props(input_filename): - if input_filename[-4:] == '.txt': + if input_filename.endswith(".txt"): props_list,props_length_max = get_props_from_txt(input_filename) - elif input_filename[-3:] == '.py': + elif input_filename.endswith(".py"): props_list,props_length_max = get_props_from_py(input_filename) return (props_list,props_length_max) @@ -200,16 +201,17 @@ def sort(props_list, sort_priority): def file_basename(input_filename): # if needed will use os.path - if input_filename[-4:] == '.txt': - if input_filename[-9:] == '_work.txt': - base_filename = input_filename[:-9] + if input_filename.endswith(".txt"): + if input_filename.endswith("_work.txt"): + base_filename = input_filename.replace("_work.txt", "") else: - base_filename = input_filename[:-4] - elif input_filename[-3:] == '.py': - if input_filename[-8:] == '_work.py': - base_filename = input_filename[:-8] + base_filename = input_filename.replace(".txt", "") + elif input_filename.endswith(".py"): + if input_filename.endswith("_work.py"): + base_filename = input_filename.replace("_work.py", "") else: - base_filename = input_filename[:-3] + base_filename = input_filename.replace(".py", "") + return base_filename @@ -236,15 +238,21 @@ def write_files(basename, props_list, props_length_max): # rna_api if props[0] == 'NOTE': indent = '# ' else: indent = ' ' - rna += indent + '("%s", "%s", "%s", "%s", "%s"),\n' % tuple(props[2:5] + props[6:]) + rna += indent + '("%s", "%s", "%s", "%s", %s),\n' % tuple(props[2:5] + props[6:]) # description is alredy string formatted # py blanks = [' '* (x[0]-x[1]) for x in zip(props_length_max,list(map(len,props)))] - props = ['"%s"%s'%(x[0],x[1]) for x in zip(props,blanks)] + props = [('"%s"%s' if props[-1] != x[0] else "%s%s") % (x[0],x[1]) for x in zip(props,blanks)] py += indent + '(%s, %s, %s, %s, %s, %s, %s, %s),\n' % tuple(props) f_txt.write(txt) f_py.write("rna_api = [\n%s]\n" % py) f_rna.write("rna_api = [\n%s]\n" % rna) + + # write useful py script, wont hurt + f_py.write("\n'''\n") + f_py.write("for p_note, p_changed, p_class, p_from, p_to, p_check, p_type, p_desc in rna_api:\n") + f_py.write(" print(p_to)\n") + f_py.write("\n'''\n") f_txt.close() f_py.close() |