Blender
V3.3
|
#include <Python.h>
#include <frameobject.h>
#include "BLI_utildefines.h"
#include "py_capi_utils.h"
#include "python_utildefines.h"
#include "MEM_guardedalloc.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
Go to the source code of this file.
Macros | |
#define | PY_SSIZE_T_CLEAN |
Functions | |
Fast Python to C Array Conversion for Primitive Types | |
int | PyC_AsArray_FAST (void *array, const size_t array_item_size, PyObject *value_fast, const Py_ssize_t length, const PyTypeObject *type, const char *error_prefix) |
int | PyC_AsArray (void *array, const size_t array_item_size, PyObject *value, const Py_ssize_t length, const PyTypeObject *type, const char *error_prefix) |
static int | PyC_AsArray_Multi_impl (void **array_p, const size_t array_item_size, PyObject *value, const int *dims, const int dims_len, const PyTypeObject *type, const char *error_prefix) |
static int | PyC_AsArray_Multi_FAST_impl (void **array_p, const size_t array_item_size, PyObject *value_fast, const int *dims, const int dims_len, const PyTypeObject *type, const char *error_prefix) |
int | PyC_AsArray_Multi_FAST (void *array, const size_t array_item_size, PyObject *value_fast, const int *dims, const int dims_len, const PyTypeObject *type, const char *error_prefix) |
int | PyC_AsArray_Multi (void *array, const size_t array_item_size, PyObject *value, const int *dims, const int dims_len, const PyTypeObject *type, const char *error_prefix) |
Typed Tuple Packing | |
| |
PyObject * | PyC_Tuple_PackArray_F32 (const float *array, uint len) |
PyObject * | PyC_Tuple_PackArray_F64 (const double *array, uint len) |
PyObject * | PyC_Tuple_PackArray_I32 (const int *array, uint len) |
PyObject * | PyC_Tuple_PackArray_I32FromBool (const int *array, uint len) |
PyObject * | PyC_Tuple_PackArray_Bool (const bool *array, uint len) |
Typed Tuple Packing (Multi-Dimensional) | |
static PyObject * | PyC_Tuple_PackArray_Multi_F32_impl (const float **array_p, const int dims[], const int dims_len) |
PyObject * | PyC_Tuple_PackArray_Multi_F32 (const float *array, const int dims[], const int dims_len) |
static PyObject * | PyC_Tuple_PackArray_Multi_F64_impl (const double **array_p, const int dims[], const int dims_len) |
PyObject * | PyC_Tuple_PackArray_Multi_F64 (const double *array, const int dims[], const int dims_len) |
static PyObject * | PyC_Tuple_PackArray_Multi_I32_impl (const int **array_p, const int dims[], const int dims_len) |
PyObject * | PyC_Tuple_PackArray_Multi_I32 (const int *array, const int dims[], const int dims_len) |
static PyObject * | PyC_Tuple_PackArray_Multi_Bool_impl (const bool **array_p, const int dims[], const int dims_len) |
PyObject * | PyC_Tuple_PackArray_Multi_Bool (const bool *array, const int dims[], const int dims_len) |
Tuple/List Filling | |
void | PyC_Tuple_Fill (PyObject *tuple, PyObject *value) |
void | PyC_List_Fill (PyObject *list, PyObject *value) |
Bool/Enum Argument Parsing | |
int | PyC_ParseBool (PyObject *o, void *p) |
int | PyC_ParseStringEnum (PyObject *o, void *p) |
const char * | PyC_StringEnum_FindIDFromValue (const struct PyC_StringEnumItems *items, const int value) |
int | PyC_CheckArgs_DeepCopy (PyObject *args) |
Simple Printing (for debugging) | |
These are useful to run directly from a debugger to be able to inspect the state. | |
void | PyC_ObSpit (const char *name, PyObject *var) |
void | PyC_ObSpitStr (char *result, size_t result_len, PyObject *var) |
void | PyC_LineSpit (void) |
void | PyC_StackSpit (void) |
Access Current Frame File Name & Line Number | |
void | PyC_FileAndNum (const char **r_filename, int *r_lineno) |
void | PyC_FileAndNum_Safe (const char **r_filename, int *r_lineno) |
Object Access Utilities | |
PyObject * | PyC_Object_GetAttrStringArgs (PyObject *o, Py_ssize_t n,...) |
Frozen Set Creation | |
PyObject * | PyC_FrozenSetFromStrings (const char **strings) |
Exception Utilities | |
PyObject * | PyC_Err_Format_Prefix (PyObject *exception_type_prefix, const char *format,...) |
PyObject * | PyC_Err_SetString_Prefix (PyObject *exception_type_prefix, const char *str) |
void | PyC_Err_PrintWithFunc (PyObject *py_func) |
Exception Buffer Access | |
static void | pyc_exception_buffer_handle_system_exit (PyObject *error_type, PyObject *error_value, PyObject *error_traceback) |
PyObject * | PyC_ExceptionBuffer (void) |
PyObject * | PyC_ExceptionBuffer_Simple (void) |
Unicode Conversion | |
In some cases we need to coerce strings, avoid doing this inline. | |
const char * | PyC_UnicodeAsByteAndSize (PyObject *py_str, Py_ssize_t *size, PyObject **coerce) |
const char * | PyC_UnicodeAsByte (PyObject *py_str, PyObject **coerce) |
PyObject * | PyC_UnicodeFromByteAndSize (const char *str, Py_ssize_t size) |
PyObject * | PyC_UnicodeFromByte (const char *str) |
Name Space Creation/Manipulation | |
PyObject * | PyC_DefaultNameSpace (const char *filename) |
bool | PyC_NameSpace_ImportArray (PyObject *py_dict, const char *imports[]) |
void | PyC_MainModule_Backup (PyObject **r_main_mod) |
void | PyC_MainModule_Restore (PyObject *main_mod) |
bool | PyC_IsInterpreterActive (void) |
#Py_SetPythonHome Wrapper | |
void | PyC_RunQuicky (const char *filepath, int n,...) |
void * | PyC_RNA_AsPointer (PyObject *value, const char *type_name) |
Flag Set Utilities (#PyC_FlagSet) | |
Convert to/from Python set of strings to an int flag. | |
PyObject * | PyC_FlagSet_AsString (const PyC_FlagSet *item) |
int | PyC_FlagSet_ValueFromID_int (const PyC_FlagSet *item, const char *identifier, int *r_value) |
int | PyC_FlagSet_ValueFromID (const PyC_FlagSet *item, const char *identifier, int *r_value, const char *error_prefix) |
int | PyC_FlagSet_ToBitfield (const PyC_FlagSet *items, PyObject *value, int *r_value, const char *error_prefix) |
PyObject * | PyC_FlagSet_FromBitfield (PyC_FlagSet *items, int flag) |
Run String (Evaluate to Primitive Types) | |
bool | PyC_RunString_AsNumber (const char *imports[], const char *expr, const char *filename, double *r_value) |
bool | PyC_RunString_AsIntPtr (const char *imports[], const char *expr, const char *filename, intptr_t *r_value) |
bool | PyC_RunString_AsStringAndSize (const char *imports[], const char *expr, const char *filename, char **r_value, size_t *r_value_size) |
bool | PyC_RunString_AsString (const char *imports[], const char *expr, const char *filename, char **r_value) |
Int Conversion | |
| |
int | PyC_Long_AsBool (PyObject *value) |
int8_t | PyC_Long_AsI8 (PyObject *value) |
int16_t | PyC_Long_AsI16 (PyObject *value) |
uint8_t | PyC_Long_AsU8 (PyObject *value) |
uint16_t | PyC_Long_AsU16 (PyObject *value) |
uint32_t | PyC_Long_AsU32 (PyObject *value) |
Py_buffer Utils | |
char | PyC_StructFmt_type_from_str (const char *typestr) |
bool | PyC_StructFmt_type_is_float_any (char format) |
bool | PyC_StructFmt_type_is_int_any (char format) |
bool | PyC_StructFmt_type_is_byte (char format) |
bool | PyC_StructFmt_type_is_bool (char format) |
Extend upon CPython's API, filling in some gaps, these functions use PyC_ prefix to distinguish them apart from CPython.
Definition in file py_capi_utils.c.
#define PY_SSIZE_T_CLEAN |
Definition at line 15 of file py_capi_utils.c.
int PyC_AsArray | ( | void * | array, |
const size_t | array_item_size, | ||
PyObject * | value, | ||
const Py_ssize_t | length, | ||
const PyTypeObject * | type, | ||
const char * | error_prefix | ||
) |
Definition at line 178 of file py_capi_utils.c.
References blender::math::length(), PyC_AsArray_FAST(), ret, and type.
Referenced by bpy_gizmo_target_set_value(), BPy_IDArray_ass_slice(), bpy_prop_array_from_py_with_dims(), idprop_ui_data_update_float_default(), idprop_ui_data_update_int_default(), py_imbuf_ppm_set(), py_rna_gizmo_handler_get_cb(), pygpu_texture__tp_new(), and pygpu_texture_clear().
int PyC_AsArray_FAST | ( | void * | array, |
const size_t | array_item_size, | ||
PyObject * | value_fast, | ||
const Py_ssize_t | length, | ||
const PyTypeObject * | type, | ||
const char * | error_prefix | ||
) |
Definition at line 45 of file py_capi_utils.c.
References BLI_assert, BLI_assert_unreachable, double(), float(), blender::math::length(), PyC_Long_AsI16(), PyC_Long_AsI8(), and type.
Referenced by PyC_AsArray(), PyC_AsArray_Multi_FAST_impl(), pygpu_IndexBuf__tp_new(), pygpu_shader_uniform_bool(), and pygpu_shader_uniform_int().
int PyC_AsArray_Multi | ( | void * | array, |
const size_t | array_item_size, | ||
PyObject * | value, | ||
const int * | dims, | ||
const int | dims_len, | ||
const PyTypeObject * | type, | ||
const char * | error_prefix | ||
) |
Definition at line 285 of file py_capi_utils.c.
References PyC_AsArray_Multi_impl(), and type.
Referenced by bpy_prop_array_from_py_with_dims().
int PyC_AsArray_Multi_FAST | ( | void * | array, |
const size_t | array_item_size, | ||
PyObject * | value_fast, | ||
const int * | dims, | ||
const int | dims_len, | ||
const PyTypeObject * | type, | ||
const char * | error_prefix | ||
) |
Definition at line 273 of file py_capi_utils.c.
References PyC_AsArray_Multi_FAST_impl(), and type.
|
static |
Definition at line 205 of file py_capi_utils.c.
References blender::math::length(), POINTER_OFFSET, PyC_AsArray_FAST(), PyC_AsArray_Multi_impl(), and type.
Referenced by PyC_AsArray_Multi_FAST(), and PyC_AsArray_Multi_impl().
|
static |
Definition at line 252 of file py_capi_utils.c.
References PyC_AsArray_Multi_FAST_impl(), ret, and type.
Referenced by PyC_AsArray_Multi(), and PyC_AsArray_Multi_FAST_impl().
int PyC_CheckArgs_DeepCopy | ( | PyObject * | args | ) |
Definition at line 540 of file py_capi_utils.c.
Referenced by Color_deepcopy(), Euler_deepcopy(), Matrix_deepcopy(), py_imbuf_deepcopy(), Quaternion_deepcopy(), and Vector_deepcopy().
PyObject* PyC_DefaultNameSpace | ( | const char * | filename | ) |
Description: This function creates a new Python dictionary object. NOTE: dict is owned by sys.modules["__main__"] module, reference is borrowed NOTE: important we use the dict from main, this is what python expects for 'pickle' to work as well as strings like this...
foo = 10 print(import("__main__").foo)
NOTE: this overwrites main which gives problems with nested calls. be sure to run PyC_MainModule_Backup & PyC_MainModule_Restore if there is any chance that python is in the call stack.
Definition at line 1093 of file py_capi_utils.c.
References PyC_UnicodeFromByte().
Referenced by bpy_rna_uilayout_introspect(), bpy_run_string_impl(), PyC_RunQuicky(), PyC_RunString_AsIntPtr(), PyC_RunString_AsNumber(), PyC_RunString_AsStringAndSize(), and python_script_exec().
PyObject* PyC_Err_Format_Prefix | ( | PyObject * | exception_type_prefix, |
const char * | format, | ||
... | |||
) |
Similar to #PyErr_Format(),
Implementation - we can't actually prepend the existing exception, because it could have any arguments given to it, so instead we get its __str__
output and raise our own exception including it.
Definition at line 766 of file py_capi_utils.c.
References NULL.
Referenced by bpy_class_call(), PyC_Err_SetString_Prefix(), and pyrna_py_to_prop().
void PyC_Err_PrintWithFunc | ( | PyObject * | py_func | ) |
Use for Python callbacks run directly from C, when we can't use normal methods of raising exceptions.
Definition at line 805 of file py_capi_utils.c.
Referenced by bpy_msgbus_notify(), bpy_prop_boolean_array_get_fn(), bpy_prop_boolean_array_set_fn(), bpy_prop_boolean_get_fn(), bpy_prop_boolean_set_fn(), bpy_prop_enum_get_fn(), bpy_prop_enum_itemf_fn(), bpy_prop_enum_set_fn(), bpy_prop_float_array_get_fn(), bpy_prop_float_array_set_fn(), bpy_prop_float_get_fn(), bpy_prop_float_set_fn(), bpy_prop_int_array_get_fn(), bpy_prop_int_array_set_fn(), bpy_prop_int_get_fn(), bpy_prop_int_set_fn(), bpy_prop_pointer_poll_fn(), bpy_prop_string_get_fn(), bpy_prop_string_length_fn(), bpy_prop_string_set_fn(), bpy_prop_string_visit_fn_call(), bpy_prop_string_visit_for_search_fn(), and bpy_prop_update_fn().
PyObject* PyC_Err_SetString_Prefix | ( | PyObject * | exception_type_prefix, |
const char * | str | ||
) |
Definition at line 800 of file py_capi_utils.c.
References PyC_Err_Format_Prefix(), and str.
Referenced by bpy_app_debug_value_set().
|
static |
Definition at line 826 of file py_capi_utils.c.
Referenced by PyC_ExceptionBuffer(), and PyC_ExceptionBuffer_Simple().
PyObject* PyC_ExceptionBuffer | ( | void | ) |
Definition at line 889 of file py_capi_utils.c.
References NULL, and pyc_exception_buffer_handle_system_exit().
Referenced by BPy_errors_to_report_ex(), pointer_type_from_py(), pyrna_py_to_prop(), and run_string_handle_error().
PyObject* PyC_ExceptionBuffer_Simple | ( | void | ) |
Definition at line 967 of file py_capi_utils.c.
References NULL, pyc_exception_buffer_handle_system_exit(), and UNLIKELY.
Referenced by BPy_errors_to_report_ex(), and run_string_handle_error().
void PyC_FileAndNum | ( | const char ** | r_filename, |
int * | r_lineno | ||
) |
Definition at line 641 of file py_capi_utils.c.
Referenced by BPy_errors_to_report_ex(), PyC_FileAndNum_Safe(), PyC_LineSpit(), and pyrna_func_call().
void PyC_FileAndNum_Safe | ( | const char ** | r_filename, |
int * | r_lineno | ||
) |
Definition at line 695 of file py_capi_utils.c.
References PyC_FileAndNum(), and PyC_IsInterpreterActive().
PyObject* PyC_FlagSet_AsString | ( | const PyC_FlagSet * | item | ) |
Definition at line 1349 of file py_capi_utils.c.
References PyC_FlagSet::identifier.
Referenced by PyC_FlagSet_ValueFromID().
PyObject* PyC_FlagSet_FromBitfield | ( | PyC_FlagSet * | items, |
int | flag | ||
) |
Definition at line 1433 of file py_capi_utils.c.
References PyC_StringEnum::items, NULL, ret, and PyC_StringEnumItems::value.
Referenced by bpy_bmesh_select_mode_get().
int PyC_FlagSet_ToBitfield | ( | const PyC_FlagSet * | items, |
PyObject * | value, | ||
int * | r_value, | ||
const char * | error_prefix | ||
) |
Definition at line 1388 of file py_capi_utils.c.
References hash, PyC_StringEnum::items, NULL, pos, PyC_FlagSet_ValueFromID(), and ret.
Referenced by bpy_bmesh_select_mode_set(), bpy_bmesh_transform(), and bpy_slot_from_py().
int PyC_FlagSet_ValueFromID | ( | const PyC_FlagSet * | item, |
const char * | identifier, | ||
int * | r_value, | ||
const char * | error_prefix | ||
) |
Definition at line 1372 of file py_capi_utils.c.
References PyC_FlagSet_AsString(), and PyC_FlagSet_ValueFromID_int().
Referenced by bpy_slot_from_py(), M_Noise_fractal(), M_Noise_hetero_terrain(), M_Noise_hybrid_multi_fractal(), M_Noise_multi_fractal(), M_Noise_noise(), M_Noise_noise_vector(), M_Noise_ridged_multi_fractal(), M_Noise_turbulence(), M_Noise_turbulence_vector(), M_Noise_variable_lacunarity(), M_Noise_voronoi(), and PyC_FlagSet_ToBitfield().
int PyC_FlagSet_ValueFromID_int | ( | const PyC_FlagSet * | item, |
const char * | identifier, | ||
int * | r_value | ||
) |
Definition at line 1360 of file py_capi_utils.c.
References PyC_FlagSet::identifier, STREQ, and PyC_FlagSet::value.
Referenced by PyC_FlagSet_ValueFromID().
PyObject* PyC_FrozenSetFromStrings | ( | const char ** | strings | ) |
Definition at line 744 of file py_capi_utils.c.
References NULL, ret, and str.
Referenced by BPyInit__bpy_path().
Definition at line 1145 of file py_capi_utils.c.
References NULL.
Referenced by BPY_context_dict_clear_members_array(), BPY_context_member_get(), BPY_text_free_code(), PyC_FileAndNum_Safe(), PyC_LineSpit(), and PyC_StackSpit().
Definition at line 603 of file py_capi_utils.c.
References PyC_FileAndNum(), and PyC_IsInterpreterActive().
Referenced by _RNA_warning().
void PyC_List_Fill | ( | PyObject * | list, |
PyObject * | value | ||
) |
Definition at line 470 of file py_capi_utils.c.
int PyC_Long_AsBool | ( | PyObject * | value | ) |
Even though Python provides a way to retrieve the boolean value for an object, in many cases it's far too relaxed, with the following examples coercing values.
In practice this is often a mistake by the script author that doesn't behave as they expect. So it's better to be more strict for attribute assignment and function arguments, only accepting True/False 0/1.
If coercing a value is desired, it can be done explicitly: data.value = bool(value)
bool
return type, so -1 can be used as an error value. Definition at line 1630 of file py_capi_utils.c.
References UNLIKELY.
Referenced by bpy_bm_elem_hflag_set(), bpy_bm_elem_hide_set(), bpy_bm_elem_select_set(), bpy_bmesh_select_flush(), bpy_bmloopuv_flag_set(), bpy_bmvertskin_flag_set(), bpy_prop_boolean_get_fn(), bpy_slot_from_py(), pyrna_array_contains_py(), and pyrna_py_to_prop_array_index().
int16_t PyC_Long_AsI16 | ( | PyObject * | value | ) |
Definition at line 1656 of file py_capi_utils.c.
References INT16_MAX, and UNLIKELY.
Referenced by bpy_app_debug_value_set(), and PyC_AsArray_FAST().
int8_t PyC_Long_AsI8 | ( | PyObject * | value | ) |
Definition at line 1643 of file py_capi_utils.c.
References INT8_MAX, and UNLIKELY.
Referenced by PyC_AsArray_FAST().
uint16_t PyC_Long_AsU16 | ( | PyObject * | value | ) |
Definition at line 1687 of file py_capi_utils.c.
References UINT16_MAX, and UNLIKELY.
uint32_t PyC_Long_AsU32 | ( | PyObject * | value | ) |
Definition at line 1700 of file py_capi_utils.c.
References UINT32_MAX, and UNLIKELY.
Referenced by C_BVHTree_FromPolygons(), pygpu_framebuffer_clear(), and pygpu_IndexBuf__tp_new().
uint8_t PyC_Long_AsU8 | ( | PyObject * | value | ) |
Definition at line 1674 of file py_capi_utils.c.
void PyC_MainModule_Backup | ( | PyObject ** | r_main_mod | ) |
PyC_MainModule_Restore MUST be called after PyC_MainModule_Backup.
Definition at line 1131 of file py_capi_utils.c.
Referenced by bpy_rna_uilayout_introspect(), bpy_run_string_impl(), PyC_RunString_AsIntPtr(), PyC_RunString_AsNumber(), PyC_RunString_AsStringAndSize(), and python_script_exec().
void PyC_MainModule_Restore | ( | PyObject * | main_mod | ) |
Definition at line 1138 of file py_capi_utils.c.
Referenced by bpy_rna_uilayout_introspect(), bpy_run_string_impl(), PyC_RunString_AsIntPtr(), PyC_RunString_AsNumber(), PyC_RunString_AsStringAndSize(), and python_script_exec().
bool PyC_NameSpace_ImportArray | ( | PyObject * | py_dict, |
const char * | imports[] | ||
) |
Import imports
into py_dict
.
py_dict | A Python dictionary, typically used as a name-space for script execution. |
imports | A NULL terminated array of strings. |
Definition at line 1111 of file py_capi_utils.c.
Referenced by bpy_run_string_impl(), PyC_RunString_AsIntPtr(), PyC_RunString_AsNumber(), and PyC_RunString_AsStringAndSize().
PyObject* PyC_Object_GetAttrStringArgs | ( | PyObject * | o, |
Py_ssize_t | n, | ||
... | |||
) |
Definition at line 711 of file py_capi_utils.c.
void PyC_ObSpit | ( | const char * | name, |
PyObject * | var | ||
) |
Definition at line 557 of file py_capi_utils.c.
Referenced by bpy_class_free(), PyC_RunQuicky(), and pyrna_subtype_set_rna().
void PyC_ObSpitStr | ( | char * | result, |
size_t | result_len, | ||
PyObject * | var | ||
) |
A version of PyC_ObSpit that writes into a string (and doesn't take a name argument). Use for logging.
Definition at line 575 of file py_capi_utils.c.
References BLI_snprintf(), NULL, result, and type.
Referenced by pyrna_srna_ExternalType().
int PyC_ParseBool | ( | PyObject * | o, |
void * | p | ||
) |
Use with PyArg_ParseTuple's "O&" formatting.
Definition at line 487 of file py_capi_utils.c.
References ELEM.
Referenced by bpy_blend_paths(), bpy_bm_new(), bpy_bm_utils_edge_rotate(), bpy_bm_utils_face_join(), bpy_bm_utils_face_split(), bpy_bmesh_from_mesh(), bpy_bmesh_from_object(), bpy_bmface_copy(), bpy_bmface_copy_from_face_interp(), bpy_bmloop_copy_from_face_interp(), BPy_BoolProperty(), bpy_driver_secure_code_test(), bpy_flip_name(), bpy_lib_load(), bpy_lib_write(), bpy_orphans_purge(), bpyunits_to_string(), C_BVHTree_FromObject(), C_BVHTree_FromPolygons(), M_Geometry_intersect_line_plane(), M_Geometry_intersect_line_sphere(), M_Geometry_intersect_line_sphere_2d(), M_Geometry_intersect_ray_tri(), py_find_nearest_cb(), pygpu_offscreen_draw_view3d(), pygpu_offscreen_unbind(), pygpu_state_depth_mask_set(), pygpu_state_front_facing_set(), pygpu_state_program_point_size_set(), pyop_as_string(), and pyrna_struct_is_property_set().
int PyC_ParseStringEnum | ( | PyObject * | o, |
void * | p | ||
) |
Use with PyArg_ParseTuple's "O&" formatting.
Definition at line 500 of file py_capi_utils.c.
References e, NULL, and STREQ.
Referenced by bpy_lib_write(), bpy_resource_path(), bpy_system_resource(), bpy_user_resource(), py_imbuf_resize(), pygpu_batch__tp_new(), pygpu_buffer__tp_new(), pygpu_framebuffer_read_color(), pygpu_IndexBuf__tp_new(), pygpu_interface_info_get_args(), pygpu_offscreen__tp_new(), pygpu_shader_from_builtin(), pygpu_shader_info_fragment_out(), pygpu_shader_info_push_constant(), pygpu_shader_info_sampler(), pygpu_shader_info_vertex_in(), pygpu_state_blend_set(), pygpu_state_depth_test_set(), pygpu_state_face_culling_set(), pygpu_texture__tp_new(), and pygpu_texture_clear().
void* PyC_RNA_AsPointer | ( | PyObject * | value, |
const char * | type_name | ||
) |
Definition at line 1307 of file py_capi_utils.c.
References NULL, result, and STREQ.
Referenced by BlenderTextureShader___init__(), bpy_bm_from_edit_mesh(), bpy_bmesh_from_mesh(), bpy_bmesh_from_object(), bpy_bmesh_to_mesh(), C_BVHTree_FromObject(), and pygpu_offscreen_draw_view3d().
void PyC_RunQuicky | ( | const char * | filepath, |
int | n, | ||
... | |||
) |
Definition at line 1160 of file py_capi_utils.c.
References NULL, ptr, PyC_DefaultNameSpace(), PyC_ObSpit(), and ret.
bool PyC_RunString_AsIntPtr | ( | const char * | imports[], |
const char * | expr, | ||
const char * | filename, | ||
intptr_t * | r_value | ||
) |
Definition at line 1523 of file py_capi_utils.c.
References NULL, PyC_DefaultNameSpace(), PyC_MainModule_Backup(), PyC_MainModule_Restore(), and PyC_NameSpace_ImportArray().
Referenced by BPY_run_string_as_intptr().
bool PyC_RunString_AsNumber | ( | const char * | imports[], |
const char * | expr, | ||
const char * | filename, | ||
double * | r_value | ||
) |
Definition at line 1455 of file py_capi_utils.c.
References CCL_NAMESPACE_BEGIN::isfinite(), mod(), NULL, PyC_DefaultNameSpace(), PyC_MainModule_Backup(), PyC_MainModule_Restore(), and PyC_NameSpace_ImportArray().
Referenced by BPY_run_string_as_number(), and bpyunits_to_value().
bool PyC_RunString_AsString | ( | const char * | imports[], |
const char * | expr, | ||
const char * | filename, | ||
char ** | r_value | ||
) |
Definition at line 1604 of file py_capi_utils.c.
References PyC_RunString_AsStringAndSize().
bool PyC_RunString_AsStringAndSize | ( | const char * | imports[], |
const char * | expr, | ||
const char * | filename, | ||
char ** | r_value, | ||
size_t * | r_value_size | ||
) |
Definition at line 1561 of file py_capi_utils.c.
References MEM_mallocN, NULL, PyC_DefaultNameSpace(), PyC_MainModule_Backup(), PyC_MainModule_Restore(), and PyC_NameSpace_ImportArray().
Referenced by BPY_run_string_as_string_and_size(), and PyC_RunString_AsString().
Definition at line 621 of file py_capi_utils.c.
References PyC_IsInterpreterActive().
const char* PyC_StringEnum_FindIDFromValue | ( | const struct PyC_StringEnumItems * | items, |
const int | value | ||
) |
Definition at line 528 of file py_capi_utils.c.
References PyC_StringEnumItems::id, PyC_StringEnum::items, and NULL.
Referenced by pygpu_buffer__tp_repr(), pygpu_state_blend_get(), pygpu_state_depth_test_get(), and pygpu_texture_format_get().
char PyC_StructFmt_type_from_str | ( | const char * | typestr | ) |
Definition at line 1727 of file py_capi_utils.c.
Referenced by gl_buffer_type_from_py_buffer(), idp_array_type_from_formatstr_and_size(), idp_from_PySequence(), and pygpu_IndexBuf__tp_new().
bool PyC_StructFmt_type_is_bool | ( | char | format | ) |
Definition at line 1787 of file py_capi_utils.c.
bool PyC_StructFmt_type_is_byte | ( | char | format | ) |
Definition at line 1775 of file py_capi_utils.c.
Referenced by gl_buffer_type_from_py_buffer().
bool PyC_StructFmt_type_is_float_any | ( | char | format | ) |
Definition at line 1741 of file py_capi_utils.c.
Referenced by gl_buffer_type_from_py_buffer(), idp_array_type_from_formatstr_and_size(), idp_from_PySequence(), and pygpu_IndexBuf__tp_new().
bool PyC_StructFmt_type_is_int_any | ( | char | format | ) |
Definition at line 1753 of file py_capi_utils.c.
Referenced by gl_buffer_type_from_py_buffer(), idp_array_type_from_formatstr_and_size(), and idp_from_PySequence().
void PyC_Tuple_Fill | ( | PyObject * | tuple, |
PyObject * | value | ||
) |
Caller needs to ensure tuple is uninitialized. Handy for filling a tuple with None for eg.
Definition at line 459 of file py_capi_utils.c.
Referenced by kdtree_nearest_to_py_and_check(), py_bvhtree_nearest_to_py_none(), and py_bvhtree_raycast_to_py_none().
Definition at line 342 of file py_capi_utils.c.
References len.
Referenced by bpy_prop_boolean_array_set_fn(), and PyC_Tuple_PackArray_Multi_Bool_impl().
Definition at line 306 of file py_capi_utils.c.
References len.
Referenced by bpy_gizmo_target_get_range(), bpy_gizmo_target_get_value(), bpy_prop_float_array_set_fn(), py_rna_gizmo_handler_set_cb(), and PyC_Tuple_PackArray_Multi_F32_impl().
Definition at line 315 of file py_capi_utils.c.
References len.
Referenced by PyC_Tuple_PackArray_Multi_F64_impl().
PyObject* PyC_Tuple_PackArray_I32 | ( | const int * | array, |
uint | len | ||
) |
Definition at line 324 of file py_capi_utils.c.
References len.
Referenced by bpy_prop_int_array_set_fn(), and PyC_Tuple_PackArray_Multi_I32_impl().
PyObject* PyC_Tuple_PackArray_I32FromBool | ( | const int * | array, |
uint | len | ||
) |
Definition at line 333 of file py_capi_utils.c.
References len.
PyObject* PyC_Tuple_PackArray_Multi_Bool | ( | const bool * | array, |
const int | dims[], | ||
const int | dims_len | ||
) |
Definition at line 448 of file py_capi_utils.c.
References PyC_Tuple_PackArray_Multi_Bool_impl().
Referenced by bpy_prop_boolean_array_set_fn().
|
static |
Definition at line 429 of file py_capi_utils.c.
References len, and PyC_Tuple_PackArray_Bool().
Referenced by PyC_Tuple_PackArray_Multi_Bool().
PyObject* PyC_Tuple_PackArray_Multi_F32 | ( | const float * | array, |
const int | dims[], | ||
const int | dims_len | ||
) |
Definition at line 376 of file py_capi_utils.c.
References PyC_Tuple_PackArray_Multi_F32_impl().
Referenced by bpy_prop_float_array_set_fn().
|
static |
Definition at line 357 of file py_capi_utils.c.
References len, and PyC_Tuple_PackArray_F32().
Referenced by PyC_Tuple_PackArray_Multi_F32().
PyObject* PyC_Tuple_PackArray_Multi_F64 | ( | const double * | array, |
const int | dims[], | ||
const int | dims_len | ||
) |
Definition at line 400 of file py_capi_utils.c.
References PyC_Tuple_PackArray_Multi_F64_impl().
|
static |
Definition at line 381 of file py_capi_utils.c.
References len, and PyC_Tuple_PackArray_F64().
Referenced by PyC_Tuple_PackArray_Multi_F64().
PyObject* PyC_Tuple_PackArray_Multi_I32 | ( | const int * | array, |
const int | dims[], | ||
const int | dims_len | ||
) |
Definition at line 424 of file py_capi_utils.c.
References PyC_Tuple_PackArray_Multi_I32_impl().
Referenced by bpy_prop_int_array_set_fn().
|
static |
Definition at line 405 of file py_capi_utils.c.
References len, and PyC_Tuple_PackArray_I32().
Referenced by PyC_Tuple_PackArray_Multi_I32().
const char* PyC_UnicodeAsByte | ( | PyObject * | py_str, |
PyObject ** | coerce | ||
) |
Definition at line 1042 of file py_capi_utils.c.
Referenced by pyrna_py_to_prop().
const char* PyC_UnicodeAsByteAndSize | ( | PyObject * | py_str, |
Py_ssize_t * | size, | ||
PyObject ** | coerce | ||
) |
String conversion, escape non-unicode chars
coerce | must be set to NULL. |
Definition at line 1015 of file py_capi_utils.c.
References NULL, result, and size().
Referenced by idp_from_PyUnicode().
PyObject* PyC_UnicodeFromByte | ( | const char * | str | ) |
Definition at line 1082 of file py_capi_utils.c.
References PyC_UnicodeFromByteAndSize(), and str.
Referenced by bpy_app_autoexec_fail_message_get(), bpy_app_tempdir_get(), bpy_blend_foreach_path_cb(), bpy_resource_path(), bpy_script_paths(), bpy_system_resource(), bpy_user_resource(), py_imbuf_filepath_get(), PyC_DefaultNameSpace(), and python_script_exec().
PyObject* PyC_UnicodeFromByteAndSize | ( | const char * | str, |
Py_ssize_t | size | ||
) |
Definition at line 1067 of file py_capi_utils.c.
References result, size(), and str.
Referenced by idprop_py_from_idp_string(), PyC_UnicodeFromByte(), pyrna_param_to_py(), pyrna_prop_to_py(), and pyrna_WindowManager_clipboard_get().