new python submodule. eg.
authorCampbell Barton <ideasman42@gmail.com>
Sat, 2 Jan 2010 23:14:01 +0000 (23:14 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 2 Jan 2010 23:14:01 +0000 (23:14 +0000)
from bpy.app import binary_path, version, version_string, home

can add constant variables from blender here as needed (maybe functions too... bpy.app.memory_usage() ?)

release/scripts/io/export_fbx.py
release/scripts/io/export_obj.py
release/scripts/io/export_ply.py
release/scripts/modules/bpy/__init__.py
release/scripts/modules/bpy/app.py [new file with mode: 0644]
release/scripts/ui/space_info.py
source/blender/python/intern/bpy_interface.c

index 6407f9b6e49a01c6e7960cb77554ee4dd681aff9..22e75f65705c41b717cd42ea3fc182507f0d26c8 100644 (file)
@@ -651,7 +651,7 @@ def write(filename, batch_objects = None, \
 }''' % (curtime))
 
     file.write('\nCreationTime: "%.4i-%.2i-%.2i %.2i:%.2i:%.2i:000"' % curtime)
-    file.write('\nCreator: "Blender3D version %s"' % bpy.version_string)
+    file.write('\nCreator: "Blender3D version %s"' % bpy.app.version_string)
 
 
     pose_items = [] # list of (fbxName, matrix) to write pose data for, easier to collect allong the way
index 6135375d18530edd9ccfbb04d209fe19dddf4769..50a40f4662cd25d90f4bf44fcfae58ec3557350e 100644 (file)
@@ -361,7 +361,7 @@ def write(filename, objects, scene,
     file = open(filename, "w")
 
     # Write Header
-    file.write('# Blender3D v%s OBJ File: %s\n' % (bpy.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1] ))
+    file.write('# Blender3D v%s OBJ File: %s\n' % (bpy.app.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1] ))
     file.write('# www.blender3d.org\n')
 
     # Tell the obj file what material file to use.
index 3c9e1f86ee2d647e3f0f8003ded3f81fee764bee..6f28b79c8f0f35b6e19f8d9af3d30ebe6f275b4e 100644 (file)
@@ -205,7 +205,7 @@ def write(filename, scene, ob, \
 
     file.write('ply\n')
     file.write('format ascii 1.0\n')
-    file.write('comment Created by Blender3D %s - www.blender.org, source file: %s\n' % (bpy.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1]))
+    file.write('comment Created by Blender3D %s - www.blender.org, source file: %s\n' % (bpy.app.version_string, bpy.data.filename.split('/')[-1].split('\\')[-1]))
 
     file.write('element vertex %d\n' % len(ply_verts))
 
index 65bf75b43e928d51dd2c582b542e300a47b8a725..6209cbe4f0e3919743e08c17dce09d10a37d72e0 100644 (file)
@@ -27,6 +27,7 @@ context = _bpy.context
 
 # python modules
 from bpy import utils
+from bpy import app
 
 from bpy import ops as _ops_module
 
@@ -100,9 +101,4 @@ def _main():
         load_scripts()
 
 
-# constants
-version = _bpy._VERSION
-version_string = _bpy._VERSION_STR
-home = _bpy._HOME
-
 _main()
diff --git a/release/scripts/modules/bpy/app.py b/release/scripts/modules/bpy/app.py
new file mode 100644 (file)
index 0000000..da45ab8
--- /dev/null
@@ -0,0 +1,26 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
+# constants
+import _bpy
+version = _bpy._VERSION
+version_string = _bpy._VERSION_STR
+home = _bpy._HOME
+binary_path = _bpy._BINPATH
index 4f6a85156d04285d72affda3be6d9b713fa52819..b15315b8668406fbefa207e63e04f45bd7701a58 100644 (file)
@@ -121,7 +121,7 @@ class INFO_MT_file_open_recent(bpy.types.Menu):
         import os
         layout = self.layout
         layout.operator_context = 'EXEC_AREA'
-        file = open(os.path.join(bpy.home, ".Blog"), "rU")
+        file = open(os.path.join(bpy.app.home, ".Blog"), "rU")
         for line in file:
             line = line.rstrip()
             layout.operator("wm.open_mainfile", text=line, icon='FILE_BLEND').path = line
index 5ac3a233e113956cef9fae73d20c4e5a2837eedc..2fcb36f6d5b54f94503dc58bf8ba9dfdbf30b540 100644 (file)
@@ -223,12 +223,15 @@ static void bpy_init_modules( void )
 
        /* blender info that wont change at runtime, add into _bpy */
        {
+               extern char bprogname[]; /* argv[0] from creator.c */
+
                PyObject *mod_dict= PyModule_GetDict(mod);
                char tmpstr[256];
                PyModule_AddStringConstant(mod, "_HOME",  BLI_gethome());
                PyDict_SetItemString(mod_dict, "_VERSION", Py_BuildValue("(iii)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION));
                sprintf(tmpstr, "%d.%02d (sub %d)", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION);
                PyModule_AddStringConstant(mod, "_VERSION_STR",  tmpstr);
+               PyModule_AddStringConstant(mod, "_BINPATH",  bprogname);
        }
 
        /* add our own modules dir, this is a python package */