User Script support added back.

- the scripts path set in the user preferences or ~/.blender/scripts/ui (io, op, io etc..) will be used to load scripts.
- the default home dir part probably only works in *nix os's

- Added a missing sync callback to vector.toTuple()
This commit is contained in:
Campbell Barton 2009-11-30 22:32:04 +00:00
parent 168fe0b4b5
commit 33c444f965
3 changed files with 33 additions and 15 deletions

@ -46,20 +46,21 @@ def load_scripts(reload_scripts=False):
for base_path in utils.script_paths():
for path_subdir in ("ui", "op", "io"):
path = os.path.join(base_path, path_subdir)
sys.path.insert(0, path)
for f in sorted(os.listdir(path)):
if f.endswith(".py"):
# python module
mod = test_import(f[0:-3])
elif "." not in f:
# python package
mod = test_import(f)
else:
mod = None
if os.path.isdir(path):
sys.path.insert(0, path)
for f in sorted(os.listdir(path)):
if f.endswith(".py"):
# python module
mod = test_import(f[0:-3])
elif "." not in f:
# python package
mod = test_import(f)
else:
mod = None
if reload_scripts and mod:
print("Reloading:", mod)
reload(mod)
if reload_scripts and mod:
print("Reloading:", mod)
reload(mod)
def _main():

@ -57,12 +57,26 @@ _scripts = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardi
_scripts = (os.path.normpath(_scripts), )
def script_paths(*args):
scripts = list(_scripts)
# add user scripts dir
user_script_path = bpy.context.user_preferences.filepaths.python_scripts_directory
if not user_script_path:
# XXX - WIN32 needs checking, perhaps better call a blender internal function.
user_script_path = os.path.join(os.path.expanduser("~"), ".blender", "scripts")
user_script_path = os.path.normpath(user_script_path)
if user_script_path not in scripts and os.path.isdir(user_script_path):
scripts.append(user_script_path)
if not args:
return _scripts
return scripts
subdir = os.path.join(*args)
script_paths = []
for path in _scripts:
for path in scripts:
script_paths.append(os.path.join(path, subdir))
return script_paths

@ -253,6 +253,9 @@ static PyObject *Vector_ToTuple(VectorObject * self, PyObject *value)
return NULL;
}
if(!BaseMath_ReadCallback(self))
return NULL;
ret= PyTuple_New(self->size);
for(x = 0; x < self->size; x++) {