diff options
Diffstat (limited to 'release/scripts/modules/sys_info.py')
-rw-r--r-- | release/scripts/modules/sys_info.py | 119 |
1 files changed, 50 insertions, 69 deletions
diff --git a/release/scripts/modules/sys_info.py b/release/scripts/modules/sys_info.py index 1b63d1d9d8d..c79865d2fca 100644 --- a/release/scripts/modules/sys_info.py +++ b/release/scripts/modules/sys_info.py @@ -26,29 +26,9 @@ import bgl import sys -def cutPoint(text, length): - """Returns position of the last space found before 'length' chars""" - l = length - c = text[l] - while c != ' ': - l -= 1 - if l == 0: - return length # no space found - c = text[l] - return l - - -def textWrap(text, length=70): - lines = [] - while len(text) > 70: - cpt = cutPoint(text, length) - line, text = text[:cpt], text[cpt + 1:] - lines.append(line) - lines.append(text) - return lines - - def write_sysinfo(op): + import textwrap + output_filename = "system-info.txt" output = bpy.data.texts.get(output_filename) @@ -57,49 +37,56 @@ def write_sysinfo(op): else: output = bpy.data.texts.new(name=output_filename) + # pretty repr + def prepr(v): + r = repr(v) + vt = type(v) + if vt is bytes: + r = r[2:-1] + elif vt is list or vt is tuple: + r = r[1:-1] + return r + + header = "= Blender %s System Information =\n" % bpy.app.version_string - lilies = "%s\n\n" % (len(header) * "=") - firstlilies = "%s\n" % (len(header) * "=") - output.write(firstlilies) + lilies = "%s\n\n" % ((len(header) - 1) * "=") + output.write(lilies[:-1]) output.write(header) output.write(lilies) + def title(text): + return "\n%s:\n%s" % (text, lilies) + # build info - output.write("\nBlender:\n") - output.write(lilies) - if bpy.app.build_branch and bpy.app.build_branch != "Unknown": - output.write("version %s, branch %r, commit date %r %r, hash %r, %r\n" % - (bpy.app.version_string, - bpy.app.build_branch, - bpy.app.build_commit_date, - bpy.app.build_commit_time, - bpy.app.build_hash, - bpy.app.build_type)) - else: - output.write("version %s, revision %r. %r\n" % - (bpy.app.version_string, - bpy.app.build_change, - bpy.app.build_type)) - - output.write("build date: %r, %r\n" % (bpy.app.build_date, bpy.app.build_time)) - output.write("platform: %r\n" % (bpy.app.build_platform)) - output.write("binary path: %r\n" % (bpy.app.binary_path)) - output.write("build cflags: %r\n" % (bpy.app.build_cflags)) - output.write("build cxxflags: %r\n" % (bpy.app.build_cxxflags)) - output.write("build linkflags: %r\n" % (bpy.app.build_linkflags)) - output.write("build system: %r\n" % (bpy.app.build_system)) + output.write(title("Blender")) + output.write("version: %s, branch: %s, commit date: %s %s, hash: %s, type: %s\n" % + (bpy.app.version_string, + prepr(bpy.app.build_branch), + prepr(bpy.app.build_commit_date), + prepr(bpy.app.build_commit_time), + prepr(bpy.app.build_hash), + prepr(bpy.app.build_type), + )) + + output.write("build date: %s, %s\n" % (prepr(bpy.app.build_date), prepr(bpy.app.build_time))) + output.write("platform: %s\n" % prepr(bpy.app.build_platform)) + output.write("binary path: %s\n" % prepr(bpy.app.binary_path)) + output.write("build cflags: %s\n" % prepr(bpy.app.build_cflags)) + output.write("build cxxflags: %s\n" % prepr(bpy.app.build_cxxflags)) + output.write("build linkflags: %s\n" % prepr(bpy.app.build_linkflags)) + output.write("build system: %s\n" % prepr(bpy.app.build_system)) # python info - output.write("\nPython:\n") - output.write(lilies) + output.write(title("Python")) output.write("version: %s\n" % (sys.version)) output.write("paths:\n") for p in sys.path: - output.write("\t%r\n" % (p)) + output.write("\t%r\n" % p) - output.write("\nDirectories:\n") - output.write(lilies) - output.write("scripts: %r\n" % (bpy.utils.script_paths())) + output.write(title("Directories")) + output.write("scripts:\n") + for p in bpy.utils.script_paths(): + output.write("\t%r\n" % p) output.write("user scripts: %r\n" % (bpy.utils.script_path_user())) output.write("pref scripts: %r\n" % (bpy.utils.script_path_pref())) output.write("datafiles: %r\n" % (bpy.utils.user_resource('DATAFILES'))) @@ -108,19 +95,17 @@ def write_sysinfo(op): output.write("autosave: %r\n" % (bpy.utils.user_resource('AUTOSAVE'))) output.write("tempdir: %r\n" % (bpy.app.tempdir)) - output.write("\nFFmpeg:\n") - output.write(lilies) + output.write(title("FFmpeg")) ffmpeg = bpy.app.ffmpeg if ffmpeg.supported: for lib in ("avcodec", "avdevice", "avformat", "avutil", "swscale"): - output.write("%r:%r%r\n" % (lib, " " * (10 - len(lib)), + output.write("%s:%s%r\n" % (lib, " " * (10 - len(lib)), getattr(ffmpeg, lib + "_version_string"))) else: output.write("Blender was built without FFmpeg support\n") if bpy.app.build_options.sdl: - output.write("\nSDL\n") - output.write(lilies) + output.write(title("SDL")) output.write("Version: %s\n" % bpy.app.sdl.version_string) output.write("Loading method: ") if bpy.app.build_options.sdl_dynload: @@ -130,8 +115,7 @@ def write_sysinfo(op): if not bpy.app.sdl.available: output.write("WARNING: Blender could not load SDL library\n") - output.write("\nOther Libraries:\n") - output.write(lilies) + output.write(title("Other Libraries")) ocio = bpy.app.ocio output.write("OpenColorIO: ") if ocio.supported: @@ -166,8 +150,7 @@ def write_sysinfo(op): if bpy.app.background: output.write("\nOpenGL: missing, background mode\n") else: - output.write("\nOpenGL\n") - output.write(lilies) + output.write(title("OpenGL")) version = bgl.glGetString(bgl.GL_RENDERER) output.write("renderer:\t%r\n" % version) output.write("vendor:\t\t%r\n" % (bgl.glGetString(bgl.GL_VENDOR))) @@ -175,12 +158,11 @@ def write_sysinfo(op): output.write("extensions:\n") glext = bgl.glGetString(bgl.GL_EXTENSIONS) - glext = textWrap(glext, 70) + glext = textwrap.wrap(glext, 70) for l in glext: - output.write("\t\t%r\n" % (l)) + output.write("\t%s\n" % l) - output.write("\nImplementation Dependent OpenGL Limits:\n") - output.write(lilies) + output.write(title("Implementation Dependent OpenGL Limits")) limit = bgl.Buffer(bgl.GL_INT, 1) bgl.glGetIntegerv(bgl.GL_MAX_TEXTURE_UNITS, limit) output.write("Maximum Fixed Function Texture Units:\t%d\n" % limit[0]) @@ -204,8 +186,7 @@ def write_sysinfo(op): if bpy.app.build_options.cycles: import cycles - output.write("\nCycles\n") - output.write(lilies) + output.write(title("Cycles")) output.write(cycles.engine.system_info()) output.current_line_index = 0 |