|
Blender V4.3
|
#include <string>#include "BLI_compiler_attrs.h"#include "BLI_span.hh"#include "BLI_sys_types.h"#include "BLI_utildefines_variadic.h"Go to the source code of this file.
Classes | |
| struct | PyC_UnicodeAsBytesAndSize_Data |
| struct | PyC_FlagSet |
| struct | PyC_StringEnumItems |
| struct | PyC_StringEnum |
Functions | |
| void | PyC_ObSpit (const char *name, PyObject *var) |
| void | PyC_ObSpitStr (char *result, size_t result_maxncpy, PyObject *var) |
| void | PyC_LineSpit () |
| void | PyC_StackSpit () |
| PyObject * | PyC_ExceptionBuffer () ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL |
| PyObject * | PyC_ExceptionBuffer_Simple () ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL |
| 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,...) |
| PyObject * | PyC_Err_SetString_Prefix (PyObject *exception_type_prefix, const char *str) |
| void | PyC_Err_PrintWithFunc (PyObject *py_func) |
| void | PyC_FileAndNum (const char **r_filename, int *r_lineno) |
| void | PyC_FileAndNum_Safe (const char **r_filename, int *r_lineno) |
| int | PyC_AsArray_FAST (void *array, size_t array_item_size, PyObject *value_fast, Py_ssize_t length, const PyTypeObject *type, const char *error_prefix) |
| int | PyC_AsArray (void *array, size_t array_item_size, PyObject *value, Py_ssize_t length, const PyTypeObject *type, const char *error_prefix) |
| int | PyC_AsArray_Multi_FAST (void *array, size_t array_item_size, PyObject *value_fast, const int *dims, int dims_len, const PyTypeObject *type, const char *error_prefix) |
| int | PyC_AsArray_Multi (void *array, size_t array_item_size, PyObject *value, const int *dims, int dims_len, const PyTypeObject *type, const char *error_prefix) |
| 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) |
| PyObject * | PyC_Tuple_PackArray_String (const char **array, uint len) |
| PyObject * | PyC_Tuple_PackArray_Multi_F32 (const float *array, const int dims[], int dims_len) |
| PyObject * | PyC_Tuple_PackArray_Multi_F64 (const double *array, const int dims[], int dims_len) |
| PyObject * | PyC_Tuple_PackArray_Multi_I32 (const int *array, const int dims[], int dims_len) |
| PyObject * | PyC_Tuple_PackArray_Multi_Bool (const bool *array, const int dims[], int dims_len) |
| void | PyC_Tuple_Fill (PyObject *tuple, PyObject *value) |
| void | PyC_List_Fill (PyObject *list, PyObject *value) |
| PyObject * | PyC_UnicodeFromBytes (const char *str) |
| PyObject * | PyC_UnicodeFromBytesAndSize (const char *str, Py_ssize_t size) |
| const char * | PyC_UnicodeAsBytes (PyObject *py_str, PyObject **r_coerce) |
| const char * | PyC_UnicodeAsBytesAndSize (PyObject *py_str, Py_ssize_t *r_size, PyObject **r_coerce) |
| int | PyC_ParseUnicodeAsBytesAndSize (PyObject *o, void *p) |
| int | PyC_ParseUnicodeAsBytesAndSize_OrNone (PyObject *o, void *p) |
| PyObject * | PyC_DefaultNameSpace (const char *filename) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT |
| void | PyC_RunQuicky (const char *filepath, int n,...) ATTR_NONNULL(1) |
| bool | PyC_NameSpace_ImportArray (PyObject *py_dict, const char *imports[]) |
| PyObject * | PyC_MainModule_Backup () ATTR_WARN_UNUSED_RESULT |
| void | PyC_MainModule_Restore (PyObject *main_mod) |
| bool | PyC_IsInterpreterActive () |
| void * | PyC_RNA_AsPointer (PyObject *value, const char *type_name) |
| 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) |
| bool | PyC_RunString_AsNumber (const char **imports, const char *expr, const char *filename, double *r_value) ATTR_NONNULL(2 |
| bool | PyC_RunString_AsIntPtr (const char **imports, const char *expr, const char *filename, intptr_t *r_value) ATTR_NONNULL(2 |
| bool | PyC_RunString_AsStringAndSize (const char **imports, const char *expr, const char *filename, char **r_value, size_t *r_value_size) ATTR_NONNULL(2 |
| bool | PyC_RunString_AsString (const char **imports, const char *expr, const char *filename, char **r_value) ATTR_NONNULL(2 |
| bool | PyC_RunString_AsStringAndSizeOrNone (const char **imports, const char *expr, const char *filename, char **r_value, size_t *r_value_size) ATTR_NONNULL(2 |
| bool | PyC_RunString_AsStringOrNone (const char **imports, const char *expr, const char *filename, char **r_value) ATTR_NONNULL(2 |
| int | PyC_ParseBool (PyObject *o, void *p) |
| int | PyC_ParseStringEnum (PyObject *o, void *p) |
| const char * | PyC_StringEnum_FindIDFromValue (const struct PyC_StringEnumItems *items, int value) |
| int | PyC_CheckArgs_DeepCopy (PyObject *args) |
| 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) |
| uint64_t | PyC_Long_AsU64 (PyObject *value) |
| Py_LOCAL_INLINE (int32_t) PyC_Long_AsI32(PyObject *value) | |
| Py_LOCAL_INLINE (int64_t) PyC_Long_AsI64(PyObject *value) | |
| 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) |
| PyObject * | PyC_UnicodeFromStdStr (const std::string &str) |
| PyObject * | PyC_Tuple_Pack_F32 (const blender::Span< float > values) |
| PyObject * | PyC_Tuple_Pack_F64 (const blender::Span< double > values) |
| PyObject * | PyC_Tuple_Pack_I32 (const blender::Span< int > values) |
| PyObject * | PyC_Tuple_Pack_I32FromBool (const blender::Span< int > values) |
| PyObject * | PyC_Tuple_Pack_Bool (const blender::Span< bool > values) |
Variables | |
| bool | ATTR_WARN_UNUSED_RESULT |
| Py_LOCAL_INLINE | ( | int32_t | ) |
Definition at line 340 of file py_capi_utils.hh.
| Py_LOCAL_INLINE | ( | int64_t | ) |
Definition at line 344 of file py_capi_utils.hh.
| int PyC_AsArray | ( | void * | array, |
| size_t | array_item_size, | ||
| PyObject * | value, | ||
| Py_ssize_t | length, | ||
| const PyTypeObject * | type, | ||
| const char * | error_prefix ) |
Definition at line 180 of file py_capi_utils.cc.
References PyC_AsArray_FAST(), and ret.
Referenced by bpy_gizmo_target_set_value(), BPy_IDArray_ass_slice(), bpy_prop_array_from_py_with_dims(), idprop_ui_data_update_bool_default(), 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, |
| size_t | array_item_size, | ||
| PyObject * | value_fast, | ||
| Py_ssize_t | length, | ||
| const PyTypeObject * | type, | ||
| const char * | error_prefix ) |
Definition at line 47 of file py_capi_utils.cc.
References BLI_assert, BLI_assert_unreachable, double(), float, length(), PyC_Long_AsI16(), and PyC_Long_AsI8().
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, |
| size_t | array_item_size, | ||
| PyObject * | value, | ||
| const int * | dims, | ||
| int | dims_len, | ||
| const PyTypeObject * | type, | ||
| const char * | error_prefix ) |
Definition at line 288 of file py_capi_utils.cc.
References PyC_AsArray_Multi_impl().
Referenced by bpy_prop_array_from_py_with_dims().
| int PyC_AsArray_Multi_FAST | ( | void * | array, |
| size_t | array_item_size, | ||
| PyObject * | value_fast, | ||
| const int * | dims, | ||
| int | dims_len, | ||
| const PyTypeObject * | type, | ||
| const char * | error_prefix ) |
Definition at line 276 of file py_capi_utils.cc.
References PyC_AsArray_Multi_FAST_impl().
| int PyC_CheckArgs_DeepCopy | ( | PyObject * | args | ) |
Silly function, we don't use arg. just check its compatible with __deepcopy__.
Definition at line 558 of file py_capi_utils.cc.
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 1114 of file py_capi_utils.cc.
References PyC_UnicodeFromBytes().
Referenced by bpy_rna_uilayout_introspect(), bpy_run_string_impl(), pyc_run_string_as_py_object(), PyC_RunQuicky(), 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 784 of file py_capi_utils.cc.
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 835 of file py_capi_utils.cc.
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 830 of file py_capi_utils.cc.
References PyC_Err_Format_Prefix(), and str.
Referenced by bpy_app_debug_value_set().
| PyObject * PyC_ExceptionBuffer | ( | ) |
Return a string containing the full stack trace.
PyErr_Occurred() != 0 .PyErr_Print also does this).SystemExit exceptions will exit (so sys.exit(..) works, matching PyErr_Print behavior).Definition at line 898 of file py_capi_utils.cc.
References BLI_assert, pyc_exception_buffer_handle_system_exit(), result, and UNLIKELY.
Referenced by BPy_errors_to_report_ex(), pointer_type_from_py(), pyrna_py_to_prop(), and run_string_handle_error().
| PyObject * PyC_ExceptionBuffer_Simple | ( | ) |
A version of PyC_ExceptionBuffer that returns the last exception only.
Useful for error messages from evaluating numeric expressions for e.g. where a full multi-line stack-trace isn't needed and doesn't format well in the status-bar.
Definition at line 958 of file py_capi_utils.cc.
References BLI_assert, pyc_exception_buffer_handle_system_exit(), result, 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 658 of file py_capi_utils.cc.
References mod().
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 712 of file py_capi_utils.cc.
References PyC_FileAndNum(), and PyC_IsInterpreterActive().
| PyObject * PyC_FlagSet_AsString | ( | const PyC_FlagSet * | item | ) |
Definition at line 1380 of file py_capi_utils.cc.
References PyC_FlagSet::identifier.
Referenced by PyC_FlagSet_ValueFromID().
| PyObject * PyC_FlagSet_FromBitfield | ( | PyC_FlagSet * | items, |
| int | flag ) |
Definition at line 1464 of file py_capi_utils.cc.
References flag, PyC_FlagSet::identifier, ret, and PyC_FlagSet::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 1419 of file py_capi_utils.cc.
References flag, hash, pos, PyC_FlagSet_ValueFromID(), and ret.
Referenced by bpy_bmesh_select_mode_set(), bpy_bmesh_transform(), bpy_slot_from_py(), and pygpu_shader_info_image().
| int PyC_FlagSet_ValueFromID | ( | const PyC_FlagSet * | item, |
| const char * | identifier, | ||
| int * | r_value, | ||
| const char * | error_prefix ) |
Definition at line 1403 of file py_capi_utils.cc.
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 1391 of file py_capi_utils.cc.
References PyC_FlagSet::identifier, STREQ, and PyC_FlagSet::value.
Referenced by PyC_FlagSet_ValueFromID().
| PyObject * PyC_FrozenSetFromStrings | ( | const char ** | strings | ) |
Definition at line 762 of file py_capi_utils.cc.
Referenced by BPyInit__bpy_path().
| bool PyC_IsInterpreterActive | ( | ) |
Definition at line 1176 of file py_capi_utils.cc.
Referenced by BPY_context_dict_clear_members_array(), BPY_context_member_get(), BPY_text_free_code(), PyC_FileAndNum_Safe(), PyC_LineSpit(), and PyC_StackSpit().
| void PyC_LineSpit | ( | ) |
Definition at line 620 of file py_capi_utils.cc.
References PyC_FileAndNum(), and PyC_IsInterpreterActive().
Referenced by _RNA_warning().
| void PyC_List_Fill | ( | PyObject * | list, |
| PyObject * | value ) |
Definition at line 490 of file py_capi_utils.cc.
| 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 1725 of file py_capi_utils.cc.
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_pin_uv_set(), bpy_bmloopuv_select_edge_set(), bpy_bmloopuv_select_set(), bpy_bmvertskin_flag_set(), BPy_IDArray_SetItem(), bpy_prop_boolean_get_fn(), bpy_slot_from_py(), foreach_getset(), idp_from_PyBool(), idp_from_PySequence_Fast(), idprop_ui_data_update_bool_default(), pyrna_array_contains_py(), and pyrna_py_to_prop_array_index().
| int16_t PyC_Long_AsI16 | ( | PyObject * | value | ) |
Definition at line 1751 of file py_capi_utils.cc.
References INT16_MAX, and UNLIKELY.
Referenced by bpy_app_debug_value_set(), foreach_getset(), and PyC_AsArray_FAST().
| int8_t PyC_Long_AsI8 | ( | PyObject * | value | ) |
Definition at line 1738 of file py_capi_utils.cc.
References INT8_MAX, and UNLIKELY.
Referenced by foreach_getset(), and PyC_AsArray_FAST().
| uint16_t PyC_Long_AsU16 | ( | PyObject * | value | ) |
Definition at line 1782 of file py_capi_utils.cc.
References pyc_Long_AsUnsignedLong(), UINT16_MAX, and UNLIKELY.
Referenced by foreach_getset().
| uint32_t PyC_Long_AsU32 | ( | PyObject * | value | ) |
Definition at line 1795 of file py_capi_utils.cc.
References pyc_Long_AsUnsignedLong(), UINT32_MAX, and UNLIKELY.
Referenced by C_BVHTree_FromPolygons(), pygpu_framebuffer_clear(), pygpu_IndexBuf__tp_new(), and pygpu_select_load_id().
| uint64_t PyC_Long_AsU64 | ( | PyObject * | value | ) |
#PyLong_AsUnsignedLongLong, unlike #PyLong_AsLongLong, does not fall back to calling #PyNumber_Index when its argument is not a PyLongObject instance. To match parsing signed integer types with #PyLong_AsLongLong, this function performs the #PyNumber_Index fallback, if necessary, before calling #PyLong_AsUnsignedLongLong.
Definition at line 1808 of file py_capi_utils.cc.
Referenced by foreach_getset().
| uint8_t PyC_Long_AsU8 | ( | PyObject * | value | ) |
Unlike Python's #PyLong_AsUnsignedLong and #PyLong_AsUnsignedLongLong, these unsigned integer parsing functions fall back to calling #PyNumber_Index when their argument is not a PyLongObject. This matches Python's signed integer parsing functions which also fall back to calling #PyNumber_Index.
Definition at line 1769 of file py_capi_utils.cc.
References pyc_Long_AsUnsignedLong(), UINT8_MAX, and UNLIKELY.
Referenced by foreach_getset().
| PyObject * PyC_MainModule_Backup | ( | ) |
PyC_MainModule_Restore MUST be called after PyC_MainModule_Backup.
Definition at line 1152 of file py_capi_utils.cc.
Referenced by bpy_rna_uilayout_introspect(), bpy_run_string_impl(), pyc_run_string_as_py_object(), and python_script_exec().
| void PyC_MainModule_Restore | ( | PyObject * | main_mod | ) |
Definition at line 1164 of file py_capi_utils.cc.
Referenced by bpy_rna_uilayout_introspect(), bpy_run_string_impl(), pyc_run_string_as_py_object(), 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 1132 of file py_capi_utils.cc.
References mod().
Referenced by bpy_run_string_impl(), and pyc_run_string_as_py_object().
| PyObject * PyC_Object_GetAttrStringArgs | ( | PyObject * | o, |
| Py_ssize_t | n, | ||
| ... ) |
Definition at line 727 of file py_capi_utils.cc.
| void PyC_ObSpit | ( | const char * | name, |
| PyObject * | var ) |
Useful to print Python objects while debugging.
Definition at line 574 of file py_capi_utils.cc.
Referenced by bpy_class_free(), PyC_RunQuicky(), and pyrna_subtype_set_rna().
| void PyC_ObSpitStr | ( | char * | result, |
| size_t | result_maxncpy, | ||
| 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 592 of file py_capi_utils.cc.
References BLI_snprintf().
Referenced by pyrna_srna_ExternalType().
| int PyC_ParseBool | ( | PyObject * | o, |
| void * | p ) |
Use with PyArg_ParseTuple's "O&" formatting.
Definition at line 507 of file py_capi_utils.cc.
Referenced by bpy_app_help_text(), bpy_blend_paths(), bpy_bm_new(), bpy_bm_update_edit_mesh(), bpy_bm_utils_edge_rotate(), bpy_bm_utils_face_join(), bpy_bm_utils_face_split(), bpy_bmelemseq_sort(), 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(), pygpu_state_scissor_test_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 520 of file py_capi_utils.cc.
Referenced by bpy_lib_write(), bpy_resource_path(), bpy_system_resource(), bpy_user_resource(), bpy_utils_previews_load(), 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_image(), 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(), pygpu_texture_clear(), and pygpu_vertformat_attr_add().
| int PyC_ParseUnicodeAsBytesAndSize | ( | PyObject * | o, |
| void * | p ) |
Use with PyArg_ParseTuple's "O&" formatting.
Expose PyC_UnicodeAsBytes in a way which is useful to the argument parser.
| o | An argument parsed to PyC_UnicodeAsBytes. |
| p | Pointer to #PyC_UnicodeAsBytes_Data. |
PyUnicode_FSConverter however this does not support paths which non utf-8 encoding, see: #111033. Definition at line 1078 of file py_capi_utils.cc.
References BLI_assert, PyC_UnicodeAsBytesAndSize(), and UNLIKELY.
Referenced by bpy_app_icons_new_triangles_from_file(), bpy_lib_load(), bpy_lib_write(), bpy_system_resource(), bpy_user_resource(), bpy_utils_previews_load(), M_imbuf_load(), py_blf_load(), py_blf_unload(), and PyC_ParseUnicodeAsBytesAndSize_OrNone().
| int PyC_ParseUnicodeAsBytesAndSize_OrNone | ( | PyObject * | o, |
| void * | p ) |
A version of PyC_ParseUnicodeAsBytesAndSize that accepts None.
Definition at line 1097 of file py_capi_utils.cc.
References BLI_assert, PyC_ParseUnicodeAsBytesAndSize(), and UNUSED_VARS_NDEBUG.
Referenced by bpy_rna_data_temp_data(), and M_imbuf_write().
| void * PyC_RNA_AsPointer | ( | PyObject * | value, |
| const char * | type_name ) |
Generic function to avoid depending on RNA.
Definition at line 1337 of file py_capi_utils.cc.
Referenced by BlenderTextureShader___init__(), bpy_bm_from_edit_mesh(), bpy_bm_update_edit_mesh(), bpy_bmesh_from_mesh(), bpy_bmesh_from_object(), bpy_bmesh_to_mesh(), C_BVHTree_FromObject(), pygpu_offscreen_draw_view3d(), and pygpu_texture_from_image().
| void PyC_RunQuicky | ( | const char * | filepath, |
| int | n, | ||
| ... ) |
Definition at line 1188 of file py_capi_utils.cc.
References printf, ptr, PyC_DefaultNameSpace(), PyC_ObSpit(), and ret.
| bool PyC_RunString_AsIntPtr | ( | const char ** | imports, |
| const char * | expr, | ||
| const char * | filename, | ||
| intptr_t * | r_value ) |
| bool PyC_RunString_AsNumber | ( | const char ** | imports, |
| const char * | expr, | ||
| const char * | filename, | ||
| double * | r_value ) |
| bool PyC_RunString_AsString | ( | const char ** | imports, |
| const char * | expr, | ||
| const char * | filename, | ||
| char ** | r_value ) |
| bool PyC_RunString_AsStringAndSize | ( | const char ** | imports, |
| const char * | expr, | ||
| const char * | filename, | ||
| char ** | r_value, | ||
| size_t * | r_value_size ) |
| r_value_size | The length of the string assigned: strlen(*r_value). |
| bool PyC_RunString_AsStringAndSizeOrNone | ( | const char ** | imports, |
| const char * | expr, | ||
| const char * | filename, | ||
| char ** | r_value, | ||
| size_t * | r_value_size ) |
| r_value_size | The length of the string assigned: strlen(*r_value). |
| bool PyC_RunString_AsStringOrNone | ( | const char ** | imports, |
| const char * | expr, | ||
| const char * | filename, | ||
| char ** | r_value ) |
| void PyC_StackSpit | ( | ) |
Definition at line 638 of file py_capi_utils.cc.
References PyC_IsInterpreterActive().
| const char * PyC_StringEnum_FindIDFromValue | ( | const struct PyC_StringEnumItems * | items, |
| int | value ) |
| char PyC_StructFmt_type_from_str | ( | const char * | typestr | ) |
Definition at line 1841 of file py_capi_utils.cc.
Referenced by gl_buffer_type_from_py_buffer(), idp_array_type_from_formatstr_and_size(), and pygpu_IndexBuf__tp_new().
| bool PyC_StructFmt_type_is_bool | ( | char | format | ) |
Definition at line 1901 of file py_capi_utils.cc.
| bool PyC_StructFmt_type_is_byte | ( | char | format | ) |
Definition at line 1889 of file py_capi_utils.cc.
Referenced by gl_buffer_type_from_py_buffer().
| bool PyC_StructFmt_type_is_float_any | ( | char | format | ) |
Definition at line 1855 of file py_capi_utils.cc.
Referenced by gl_buffer_type_from_py_buffer(), idp_array_type_from_formatstr_and_size(), and pygpu_IndexBuf__tp_new().
| bool PyC_StructFmt_type_is_int_any | ( | char | format | ) |
Definition at line 1867 of file py_capi_utils.cc.
Referenced by gl_buffer_type_from_py_buffer(), and idp_array_type_from_formatstr_and_size().
| 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 479 of file py_capi_utils.cc.
Referenced by kdtree_nearest_to_py_and_check(), py_bvhtree_nearest_to_py_none(), and py_bvhtree_raycast_to_py_none().
|
inline |
Definition at line 377 of file py_capi_utils.hh.
References PyC_Tuple_PackArray_Bool().
|
inline |
Definition at line 361 of file py_capi_utils.hh.
References PyC_Tuple_PackArray_F32().
|
inline |
Definition at line 365 of file py_capi_utils.hh.
References PyC_Tuple_PackArray_F64().
Referenced by py_imbuf_ppm_get().
|
inline |
Definition at line 369 of file py_capi_utils.hh.
References PyC_Tuple_PackArray_I32().
Referenced by M_Geometry_tessellate_polygon(), make_alembic_info(), make_app_info(), make_ocio_info(), make_oiio_info(), make_opensubdiv_info(), make_openvdb_info(), make_sdl_info(), make_usd_info(), and py_imbuf_size_get().
|
inline |
Definition at line 373 of file py_capi_utils.hh.
References PyC_Tuple_PackArray_I32FromBool().
| PyObject * PyC_Tuple_PackArray_Bool | ( | const bool * | array, |
| uint | len ) |
Definition at line 345 of file py_capi_utils.cc.
References len.
Referenced by bpy_prop_boolean_array_set_fn(), PyC_Tuple_Pack_Bool(), and PyC_Tuple_PackArray_Multi_Bool_impl().
Definition at line 309 of file py_capi_utils.cc.
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(), PyC_Tuple_Pack_F32(), and PyC_Tuple_PackArray_Multi_F32_impl().
Definition at line 318 of file py_capi_utils.cc.
References len.
Referenced by PyC_Tuple_Pack_F64(), and PyC_Tuple_PackArray_Multi_F64_impl().
Definition at line 327 of file py_capi_utils.cc.
References len.
Referenced by bpy_prop_int_array_set_fn(), PyC_Tuple_Pack_I32(), and PyC_Tuple_PackArray_Multi_I32_impl().
Definition at line 336 of file py_capi_utils.cc.
References len.
Referenced by PyC_Tuple_Pack_I32FromBool().
Definition at line 468 of file py_capi_utils.cc.
References PyC_Tuple_PackArray_Multi_Bool_impl().
Referenced by bpy_prop_boolean_array_set_fn().
Definition at line 396 of file py_capi_utils.cc.
References PyC_Tuple_PackArray_Multi_F32_impl().
Referenced by bpy_prop_float_array_set_fn().
Definition at line 420 of file py_capi_utils.cc.
References PyC_Tuple_PackArray_Multi_F64_impl().
Definition at line 444 of file py_capi_utils.cc.
References PyC_Tuple_PackArray_Multi_I32_impl().
Referenced by bpy_prop_int_array_set_fn().
| PyObject * PyC_Tuple_PackArray_String | ( | const char ** | array, |
| uint | len ) |
Definition at line 354 of file py_capi_utils.cc.
References len.
Referenced by bpy_app_python_args_get().
| const char * PyC_UnicodeAsBytes | ( | PyObject * | py_str, |
| PyObject ** | r_coerce ) |
Definition at line 1028 of file py_capi_utils.cc.
References result.
Referenced by bpy_app_binary_path_set(), pyrna_py_to_prop(), and pyrna_WindowManager_clipboard_set().
| const char * PyC_UnicodeAsBytesAndSize | ( | PyObject * | py_str, |
| Py_ssize_t * | r_size, | ||
| PyObject ** | r_coerce ) |
String conversion, escape non-unicode chars
| r_size | The string length (not including the null terminator). |
| r_coerce | must reference a pointer set to NULL. |
Definition at line 1001 of file py_capi_utils.cc.
References result.
Referenced by idp_from_PyUnicode(), and PyC_ParseUnicodeAsBytesAndSize().
| PyObject * PyC_UnicodeFromBytes | ( | const char * | str | ) |
Create a str from bytes in a way which is compatible with non UTF8 encoded file-system paths, see: #111033. Follow http://www.python.org/dev/peps/pep-0383/
Definition at line 1068 of file py_capi_utils.cc.
References PyC_UnicodeFromBytesAndSize(), and str.
Referenced by bpy_app_autoexec_fail_message_get(), bpy_app_binary_path_get(), bpy_app_tempdir_get(), bpy_blend_foreach_path_cb(), Freestyle_Init(), py_imbuf_filepath_get(), PyC_DefaultNameSpace(), pyrna_struct_CreatePyObject_with_primitive_support(), python_compat_wrapper_PyRun_FileExFlags(), and python_script_exec().
| PyObject * PyC_UnicodeFromBytesAndSize | ( | const char * | str, |
| Py_ssize_t | size ) |
| size | The length of the string: strlen(str). |
Definition at line 1053 of file py_capi_utils.cc.
Referenced by idprop_py_from_idp_string(), PyC_UnicodeFromBytes(), PyC_UnicodeFromStdStr(), pyrna_param_to_py(), pyrna_prop_to_py(), and pyrna_WindowManager_clipboard_get().
| PyObject * PyC_UnicodeFromStdStr | ( | const std::string & | str | ) |
Create a str from std::string, wraps PyC_UnicodeFromBytesAndSize.
Definition at line 1073 of file py_capi_utils.cc.
References PyC_UnicodeFromBytesAndSize(), and str.
Referenced by BPy_init_modules(), bpy_resource_path(), bpy_script_paths(), bpy_system_resource(), bpy_user_resource(), and blender::render::hydra::cache_or_get_image_file_func().
| bool ATTR_WARN_UNUSED_RESULT |
Definition at line 228 of file py_capi_utils.hh.