diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-01-04 07:47:37 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-01-04 07:47:37 +0400 |
commit | 9dbe85c17ea0e3a9279780e51a9caea69ea056ed (patch) | |
tree | 2616faf930c04d57d1259798cf0bf081ae914e40 | |
parent | a50794e4f93cb2756fce5c585ad46327cfe27f46 (diff) |
expose common extensions for image/movie/audio types, since python scripts had to do this internally.
- bpy.path.extensions_image
- bpy.path.extensions_movie
- bpy.path.extensions_audio
eg:
if os.path.splitext(filename)[1].lower() in bpy.path.extensions_image:
... we have an image ...
-rw-r--r-- | release/scripts/modules/bpy/path.py | 7 | ||||
-rw-r--r-- | source/blender/python/generic/py_capi_utils.c | 17 | ||||
-rw-r--r-- | source/blender/python/generic/py_capi_utils.h | 1 | ||||
-rw-r--r-- | source/blender/python/intern/CMakeLists.txt | 2 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_interface.c | 2 |
5 files changed, 29 insertions, 0 deletions
diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py index d32b69b501c..69ed4314f6f 100644 --- a/release/scripts/modules/bpy/path.py +++ b/release/scripts/modules/bpy/path.py @@ -30,6 +30,9 @@ __all__ = ( "display_name", "display_name_from_filepath", "ensure_ext", + "extensions_image", + "extensions_movie", + "extensions_audio", "is_subdir", "module_names", "relpath", @@ -39,6 +42,10 @@ __all__ = ( import bpy as _bpy import os as _os +from _bpy_path import (extensions_audio, + extensions_movie, + extensions_image, + ) def abspath(path, start=None, library=None): """ diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c index f62fdaf09db..9a064923736 100644 --- a/source/blender/python/generic/py_capi_utils.c +++ b/source/blender/python/generic/py_capi_utils.c @@ -241,6 +241,23 @@ PyObject *PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...) return item; } +PyObject *PyC_FrozenSetFromStrings(const char **strings) +{ + const char **str; + PyObject *ret; + + ret = PyFrozenSet_New(NULL); + + for (str = strings; *str; str++) { + PyObject *py_str = PyUnicode_FromString(*str); + PySet_Add(ret, py_str); + Py_DECREF(py_str); + } + + return ret; +} + + /* similar to PyErr_Format(), * * implementation - we cant actually preprend the existing exception, diff --git a/source/blender/python/generic/py_capi_utils.h b/source/blender/python/generic/py_capi_utils.h index 45c9247d710..db582bd7086 100644 --- a/source/blender/python/generic/py_capi_utils.h +++ b/source/blender/python/generic/py_capi_utils.h @@ -33,6 +33,7 @@ void PyC_LineSpit(void); void PyC_StackSpit(void); PyObject * PyC_ExceptionBuffer(void); PyObject * PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...); +PyObject * PyC_FrozenSetFromStrings(const char **strings); PyObject * PyC_Err_Format_Prefix(PyObject *exception_type_prefix, const char *format, ...); void PyC_FileAndNum(const char **filename, int *lineno); void PyC_FileAndNum_Safe(const char **filename, int *lineno); /* checks python is running */ diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 6f2c5a75730..b94869c6ca5 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -56,6 +56,7 @@ set(SRC bpy_library.c bpy_operator.c bpy_operator_wrap.c + bpy_path.c bpy_props.c bpy_rna.c bpy_rna_anim.c @@ -76,6 +77,7 @@ set(SRC bpy_library.h bpy_operator.h bpy_operator_wrap.h + bpy_path.h bpy_props.h bpy_rna.h bpy_rna_anim.h diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index d71c85bc3a0..7bce8673943 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -44,6 +44,7 @@ #include "bpy.h" #include "gpu.h" #include "bpy_rna.h" +#include "bpy_path.h" #include "bpy_util.h" #include "bpy_traceback.h" #include "bpy_intern_string.h" @@ -212,6 +213,7 @@ static struct _inittab bpy_internal_modules[] = { {(char *)"mathutils", PyInit_mathutils}, // {(char *)"mathutils.geometry", PyInit_mathutils_geometry}, // {(char *)"mathutils.noise", PyInit_mathutils_noise}, + {(char *)"_bpy_path", BPyInit__bpy_path}, {(char *)"bgl", BPyInit_bgl}, {(char *)"blf", BPyInit_blf}, {(char *)"bmesh", BPyInit_bmesh}, |