Blender  V2.93
Classes | Macros | Functions | Variables
bpy_rna.c File Reference
#include <Python.h>
#include <float.h>
#include <stddef.h>
#include "RNA_types.h"
#include "BLI_bitmap.h"
#include "BLI_dynstr.h"
#include "BLI_listbase.h"
#include "BLI_math_rotation.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BPY_extern.h"
#include "BPY_extern_clog.h"
#include "bpy_capi_utils.h"
#include "bpy_intern_string.h"
#include "bpy_props.h"
#include "bpy_rna.h"
#include "bpy_rna_anim.h"
#include "bpy_rna_callback.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
#include "CLG_log.h"
#include "MEM_guardedalloc.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
#include "BKE_idtype.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_node.h"
#include "DEG_depsgraph_query.h"
#include "../generic/idprop_py_api.h"
#include "../generic/py_capi_utils.h"
#include "../generic/python_utildefines.h"
#include "../mathutils/mathutils.h"

Go to the source code of this file.

Classes

struct  BPy_TypesModule_State
 

Macros

#define USE_PEDANTIC_WRITE
 
#define USE_MATHUTILS
 
#define USE_STRING_COERCE
 
#define USE_POSTPONED_ANNOTATIONS
 
#define BPY_DOC_ID_PROP_TYPE_NOTE
 
#define MATHUTILS_CB_SUBTYPE_EUL   0
 
#define MATHUTILS_CB_SUBTYPE_VEC   1
 
#define MATHUTILS_CB_SUBTYPE_QUAT   2
 
#define MATHUTILS_CB_SUBTYPE_COLOR   3
 
#define PROP_ALL_VECTOR_SUBTYPES
 
#define PYRNA_PROP_COLLECTION_ABS_INDEX(ret_err)
 
#define BPY_REPLACEMENT_STRING(rna_attr, py_attr)
 

Functions

static PyObject * pyrna_struct_Subtype (PointerRNA *ptr)
 
static PyObject * pyrna_prop_collection_values (BPy_PropertyRNA *self)
 
static PyObject * pyrna_register_class (PyObject *self, PyObject *py_class)
 
static PyObject * pyrna_unregister_class (PyObject *self, PyObject *py_class)
 
int pyrna_struct_validity_check (BPy_StructRNA *pysrna)
 
int pyrna_prop_validity_check (BPy_PropertyRNA *self)
 
void pyrna_invalidate (BPy_DummyPointerRNA *self)
 
void BPY_id_release (struct ID *id)
 
static bool rna_id_write_error (PointerRNA *ptr, PyObject *key)
 
bool pyrna_write_check (void)
 
void pyrna_write_set (bool val)
 
static Py_ssize_t pyrna_prop_collection_length (BPy_PropertyRNA *self)
 
static Py_ssize_t pyrna_prop_array_length (BPy_PropertyArrayRNA *self)
 
static int pyrna_py_to_prop (PointerRNA *ptr, PropertyRNA *prop, void *data, PyObject *value, const char *error_prefix)
 
static int deferred_register_prop (StructRNA *srna, PyObject *key, PyObject *item)
 
static PyObject * pyrna_prop_array_subscript_slice (BPy_PropertyArrayRNA *self, PointerRNA *ptr, PropertyRNA *prop, Py_ssize_t start, Py_ssize_t stop, Py_ssize_t length)
 
static short pyrna_rotation_euler_order_get (PointerRNA *ptr, const short order_fallback, PropertyRNA **r_prop_eul_order)
 
static int mathutils_rna_generic_check (BaseMathObject *bmo)
 
static int mathutils_rna_vector_get (BaseMathObject *bmo, int subtype)
 
static int mathutils_rna_vector_set (BaseMathObject *bmo, int subtype)
 
static int mathutils_rna_vector_get_index (BaseMathObject *bmo, int UNUSED(subtype), int index)
 
static int mathutils_rna_vector_set_index (BaseMathObject *bmo, int UNUSED(subtype), int index)
 
static int mathutils_rna_matrix_get (BaseMathObject *bmo, int UNUSED(subtype))
 
static int mathutils_rna_matrix_set (BaseMathObject *bmo, int UNUSED(subtype))
 
PyObject * pyrna_math_object_from_array (PointerRNA *ptr, PropertyRNA *prop)
 
int pyrna_enum_value_from_id (const EnumPropertyItem *item, const char *identifier, int *r_value, const char *error_prefix)
 
static int pyrna_struct_compare (BPy_StructRNA *a, BPy_StructRNA *b)
 
static int pyrna_prop_compare (BPy_PropertyRNA *a, BPy_PropertyRNA *b)
 
static PyObject * pyrna_struct_richcmp (PyObject *a, PyObject *b, int op)
 
static PyObject * pyrna_prop_richcmp (PyObject *a, PyObject *b, int op)
 
static PyObject * pyrna_struct_str (BPy_StructRNA *self)
 
static PyObject * pyrna_struct_repr (BPy_StructRNA *self)
 
static PyObject * pyrna_prop_str (BPy_PropertyRNA *self)
 
static PyObject * pyrna_prop_repr_ex (BPy_PropertyRNA *self, const int index_dim, const int index)
 
static PyObject * pyrna_prop_repr (BPy_PropertyRNA *self)
 
static PyObject * pyrna_prop_array_repr (BPy_PropertyArrayRNA *self)
 
static PyObject * pyrna_func_repr (BPy_FunctionRNA *self)
 
static Py_hash_t pyrna_struct_hash (BPy_StructRNA *self)
 
static long pyrna_prop_hash (BPy_PropertyRNA *self)
 
static void pyrna_struct_dealloc (BPy_StructRNA *self)
 
static void pyrna_prop_dealloc (BPy_PropertyRNA *self)
 
static void pyrna_prop_array_dealloc (BPy_PropertyRNA *self)
 
static const char * pyrna_enum_as_string (PointerRNA *ptr, PropertyRNA *prop)
 
static int pyrna_string_to_enum (PyObject *item, PointerRNA *ptr, PropertyRNA *prop, int *r_value, const char *error_prefix)
 
BLI_bitmappyrna_set_to_enum_bitmap (const EnumPropertyItem *items, PyObject *value, int type_size, bool type_convert_sign, int bitmap_size, const char *error_prefix)
 
int pyrna_set_to_enum_bitfield (const EnumPropertyItem *items, PyObject *value, int *r_value, const char *error_prefix)
 
static int pyrna_prop_to_enum_bitfield (PointerRNA *ptr, PropertyRNA *prop, PyObject *value, int *r_value, const char *error_prefix)
 
PyObject * pyrna_enum_bitfield_to_py (const EnumPropertyItem *items, int value)
 
static PyObject * pyrna_enum_to_py (PointerRNA *ptr, PropertyRNA *prop, int val)
 
PyObject * pyrna_prop_to_py (PointerRNA *ptr, PropertyRNA *prop)
 
int pyrna_pydict_to_props (PointerRNA *ptr, PyObject *kw, const bool all_args, const char *error_prefix)
 
static PyObject * pyrna_func_to_py (const PointerRNA *ptr, FunctionRNA *func)
 
static PyObject * pyrna_prop_array_to_py_index (BPy_PropertyArrayRNA *self, int index)
 
static int pyrna_py_to_prop_array_index (BPy_PropertyArrayRNA *self, int index, PyObject *value)
 
static int pyrna_prop_array_bool (BPy_PropertyRNA *self)
 
static int pyrna_prop_collection_bool (BPy_PropertyRNA *self)
 
static PyObject * pyrna_prop_collection_subscript_int (BPy_PropertyRNA *self, Py_ssize_t keynum)
 
static int pyrna_prop_collection_ass_subscript_int (BPy_PropertyRNA *self, Py_ssize_t keynum, PyObject *value)
 
static PyObject * pyrna_prop_array_subscript_int (BPy_PropertyArrayRNA *self, int keynum)
 
static PyObject * pyrna_prop_collection_subscript_str (BPy_PropertyRNA *self, const char *keyname)
 
static int pyrna_prop_collection_subscript_str_lib_pair_ptr (BPy_PropertyRNA *self, PyObject *key, const char *err_prefix, const short err_not_found, PointerRNA *r_ptr)
 
static PyObject * pyrna_prop_collection_subscript_str_lib_pair (BPy_PropertyRNA *self, PyObject *key, const char *err_prefix, const bool err_not_found)
 
static PyObject * pyrna_prop_collection_subscript_slice (BPy_PropertyRNA *self, Py_ssize_t start, Py_ssize_t stop)
 
static PyObject * pyrna_prop_collection_subscript (BPy_PropertyRNA *self, PyObject *key)
 
static int pyrna_prop_collection_type_check (BPy_PropertyRNA *self, PyObject *value)
 
static int pyrna_prop_collection_ass_subscript (BPy_PropertyRNA *self, PyObject *key, PyObject *value)
 
static PyObject * pyrna_prop_array_subscript (BPy_PropertyArrayRNA *self, PyObject *key)
 
static PyObject * prop_subscript_ass_array_slice__as_seq_fast (PyObject *value, int length)
 
static int prop_subscript_ass_array_slice__float_recursive (PyObject **value_items, float *value, int totdim, const int dimsize[], const float range[2])
 
static int prop_subscript_ass_array_slice__int_recursive (PyObject **value_items, int *value, int totdim, const int dimsize[], const int range[2])
 
static int prop_subscript_ass_array_slice__bool_recursive (PyObject **value_items, bool *value, int totdim, const int dimsize[])
 
static int prop_subscript_ass_array_slice (PointerRNA *ptr, PropertyRNA *prop, int arraydim, int arrayoffset, int start, int stop, int length, PyObject *value_orig)
 
static int prop_subscript_ass_array_int (BPy_PropertyArrayRNA *self, Py_ssize_t keynum, PyObject *value)
 
static int pyrna_prop_array_ass_subscript (BPy_PropertyArrayRNA *self, PyObject *key, PyObject *value)
 
static int pyrna_prop_array_contains (BPy_PropertyRNA *self, PyObject *value)
 
static int pyrna_prop_collection_contains (BPy_PropertyRNA *self, PyObject *key)
 
static int pyrna_struct_contains (BPy_StructRNA *self, PyObject *value)
 
static PyObject * pyrna_struct_subscript (BPy_StructRNA *self, PyObject *key)
 
static int pyrna_struct_ass_subscript (BPy_StructRNA *self, PyObject *key, PyObject *value)
 
 PyDoc_STRVAR (pyrna_struct_keys_doc, ".. method:: keys()\n" "\n" " Returns the keys of this objects custom properties (matches Python's\n" " dictionary function of the same name).\n" "\n" " :return: custom property keys.\n" " :rtype: list of strings\n" "\n" BPY_DOC_ID_PROP_TYPE_NOTE)
 
static PyObject * pyrna_struct_keys (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_struct_items_doc, ".. method:: items()\n" "\n" " Returns the items of this objects custom properties (matches Python's\n" " dictionary function of the same name).\n" "\n" " :return: custom property key, value pairs.\n" " :rtype: list of key, value tuples\n" "\n" BPY_DOC_ID_PROP_TYPE_NOTE)
 
static PyObject * pyrna_struct_items (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_struct_values_doc, ".. method:: values()\n" "\n" " Returns the values of this objects custom properties (matches Python's\n" " dictionary function of the same name).\n" "\n" " :return: custom property values.\n" " :rtype: list\n" "\n" BPY_DOC_ID_PROP_TYPE_NOTE)
 
static PyObject * pyrna_struct_values (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_struct_is_property_set_doc, ".. method:: is_property_set(property, ghost=True)\n" "\n" " Check if a property is set, use for testing operator properties.\n" "\n" " :arg ghost: Used for operators that re-run with previous settings.\n" " In this case the property is not marked as set,\n" " yet the value from the previous execution is used.\n" "\n" " In rare cases you may want to set this option to false.\n" "\n" " :type ghost: boolean\n" " :return: True when the property has been set.\n" " :rtype: boolean\n")
 
static PyObject * pyrna_struct_is_property_set (BPy_StructRNA *self, PyObject *args, PyObject *kw)
 
 PyDoc_STRVAR (pyrna_struct_property_unset_doc, ".. method:: property_unset(property)\n" "\n" " Unset a property, will use default value afterward.\n")
 
static PyObject * pyrna_struct_property_unset (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_is_property_hidden_doc, ".. method:: is_property_hidden(property)\n" "\n" " Check if a property is hidden.\n" "\n" " :return: True when the property is hidden.\n" " :rtype: boolean\n")
 
static PyObject * pyrna_struct_is_property_hidden (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_is_property_readonly_doc, ".. method:: is_property_readonly(property)\n" "\n" " Check if a property is readonly.\n" "\n" " :return: True when the property is readonly (not writable).\n" " :rtype: boolean\n")
 
static PyObject * pyrna_struct_is_property_readonly (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_is_property_overridable_library_doc, ".. method:: is_property_overridable_library(property)\n" "\n" " Check if a property is overridable.\n" "\n" " :return: True when the property is overridable.\n" " :rtype: boolean\n")
 
static PyObject * pyrna_struct_is_property_overridable_library (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_property_overridable_library_set_doc, ".. method:: property_overridable_library_set(property, overridable)\n" "\n" " Define a property as overridable or not (only for custom properties!).\n" "\n" " :return: True when the overridable status of the property was successfully set.\n" " :rtype: boolean\n")
 
static PyObject * pyrna_struct_property_overridable_library_set (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_path_resolve_doc, ".. method:: path_resolve(path, coerce=True)\n" "\n" " Returns the property from the path, raise an exception when not found.\n" "\n" " :arg path: path which this property resolves.\n" " :type path: string\n" " :arg coerce: optional argument, when True, the property will be converted\n" " into its Python representation.\n" " :type coerce: boolean\n")
 
static PyObject * pyrna_struct_path_resolve (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_path_from_id_doc, ".. method:: path_from_id(property=\"\")\n" "\n" " Returns the data path from the ID to this object (string).\n" "\n" " :arg property: Optional property name which can be used if the path is\n" " to a property of this object.\n" " :type property: string\n" " :return: The path from :class:`bpy.types.bpy_struct.id_data`\n" " to this struct and property (when given).\n" " :rtype: str\n")
 
static PyObject * pyrna_struct_path_from_id (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_prop_path_from_id_doc, ".. method:: path_from_id()\n" "\n" " Returns the data path from the ID to this property (string).\n" "\n" " :return: The path from :class:`bpy.types.bpy_struct.id_data` to this property.\n" " :rtype: str\n")
 
static PyObject * pyrna_prop_path_from_id (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_prop_as_bytes_doc, ".. method:: as_bytes()\n" "\n" " Returns this string property as a byte rather than a Python string.\n" "\n" " :return: The string as bytes.\n" " :rtype: bytes\n")
 
static PyObject * pyrna_prop_as_bytes (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_prop_update_doc, ".. method:: update()\n" "\n" " Execute the properties update callback.\n" "\n" " .. note::\n" " This is called when assigning a property,\n" " however in rare cases it's useful to call explicitly.\n")
 
static PyObject * pyrna_prop_update (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_struct_type_recast_doc, ".. method:: type_recast()\n" "\n" " Return a new instance, this is needed because types\n" " such as textures can be changed at runtime.\n" "\n" " :return: a new instance of this object with the type initialized again.\n" " :rtype: subclass of :class:`bpy.types.bpy_struct`\n")
 
static PyObject * pyrna_struct_type_recast (BPy_StructRNA *self)
 
static PyObject * pyrna_struct_bl_rna_find_subclass_recursive (PyObject *cls, const char *id)
 
 PyDoc_STRVAR (pyrna_struct_bl_rna_get_subclass_py_doc, ".. classmethod:: bl_rna_get_subclass_py(id, default=None)\n" "\n" " :arg id: The RNA type identifier.\n" " :type id: string\n" " :return: The class or default when not found.\n" " :rtype: type\n")
 
static PyObject * pyrna_struct_bl_rna_get_subclass_py (PyObject *cls, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_bl_rna_get_subclass_doc, ".. classmethod:: bl_rna_get_subclass(id, default=None)\n" "\n" " :arg id: The RNA type identifier.\n" " :type id: string\n" " :return: The RNA type or default when not found.\n" " :rtype: :class:`bpy.types.Struct` subclass\n")
 
static PyObject * pyrna_struct_bl_rna_get_subclass (PyObject *cls, PyObject *args)
 
static void pyrna_dir_members_py__add_keys (PyObject *list, PyObject *dict)
 
static void pyrna_dir_members_py (PyObject *list, PyObject *self)
 
static void pyrna_dir_members_rna (PyObject *list, PointerRNA *ptr)
 
static PyObject * pyrna_struct_dir (BPy_StructRNA *self)
 
static PyObject * pyrna_struct_getattro (BPy_StructRNA *self, PyObject *pyname)
 
static int pyrna_struct_meta_idprop_setattro (PyObject *cls, PyObject *attr, PyObject *value)
 
static int pyrna_struct_setattro (BPy_StructRNA *self, PyObject *pyname, PyObject *value)
 
static PyObject * pyrna_prop_dir (BPy_PropertyRNA *self)
 
static PyObject * pyrna_prop_array_getattro (BPy_PropertyRNA *self, PyObject *pyname)
 
static PyObject * pyrna_prop_collection_getattro (BPy_PropertyRNA *self, PyObject *pyname)
 
static int pyrna_prop_collection_setattro (BPy_PropertyRNA *self, PyObject *pyname, PyObject *value)
 
static PyObject * pyrna_prop_collection_idprop_add (BPy_PropertyRNA *self)
 
static PyObject * pyrna_prop_collection_idprop_remove (BPy_PropertyRNA *self, PyObject *value)
 
static PyObject * pyrna_prop_collection_idprop_clear (BPy_PropertyRNA *self)
 
static PyObject * pyrna_prop_collection_idprop_move (BPy_PropertyRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_get_id_data_doc, "The :class:`bpy.types.ID` object this datablock is from or None, (not available for " "all data types)")
 
static PyObject * pyrna_struct_get_id_data (BPy_DummyPointerRNA *self)
 
 PyDoc_STRVAR (pyrna_struct_get_data_doc, "The data this property is using, *type* :class:`bpy.types.bpy_struct`")
 
static PyObject * pyrna_struct_get_data (BPy_DummyPointerRNA *self)
 
 PyDoc_STRVAR (pyrna_struct_get_rna_type_doc, "The property type for introspection")
 
static PyObject * pyrna_struct_get_rna_type (BPy_PropertyRNA *self)
 
static PyObject * pyrna_func_doc_get (BPy_FunctionRNA *self, void *closure)
 
 PyDoc_STRVAR (pyrna_prop_collection_keys_doc, ".. method:: keys()\n" "\n" " Return the identifiers of collection members\n" " (matching Python's dict.keys() functionality).\n" "\n" " :return: the identifiers for each member of this collection.\n" " :rtype: list of strings\n")
 
static PyObject * pyrna_prop_collection_keys (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_prop_collection_items_doc, ".. method:: items()\n" "\n" " Return the identifiers of collection members\n" " (matching Python's dict.items() functionality).\n" "\n" " :return: (key, value) pairs for each member of this collection.\n" " :rtype: list of tuples\n")
 
static PyObject * pyrna_prop_collection_items (BPy_PropertyRNA *self)
 
 PyDoc_STRVAR (pyrna_prop_collection_values_doc, ".. method:: values()\n" "\n" " Return the values of collection\n" " (matching Python's dict.values() functionality).\n" "\n" " :return: the members of this collection.\n" " :rtype: list\n")
 
 PyDoc_STRVAR (pyrna_struct_get_doc, ".. method:: get(key, default=None)\n" "\n" " Returns the value of the custom property assigned to key or default\n" " when not found (matches Python's dictionary function of the same name).\n" "\n" " :arg key: The key associated with the custom property.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" " :type default: Undefined\n" "\n" BPY_DOC_ID_PROP_TYPE_NOTE)
 
static PyObject * pyrna_struct_get (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_pop_doc, ".. method:: pop(key, default=None)\n" "\n" " Remove and return the value of the custom property assigned to key or default\n" " when not found (matches Python's dictionary function of the same name).\n" "\n" " :arg key: The key associated with the custom property.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" " :type default: Undefined\n" "\n" BPY_DOC_ID_PROP_TYPE_NOTE)
 
static PyObject * pyrna_struct_pop (BPy_StructRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_struct_as_pointer_doc, ".. method:: as_pointer()\n" "\n" " Returns the memory address which holds a pointer to Blender's internal data\n" "\n" " :return: int (memory address).\n" " :rtype: int\n" "\n" " .. note:: This is intended only for advanced script writers who need to\n" " pass blender data to their own C/Python modules.\n")
 
static PyObject * pyrna_struct_as_pointer (BPy_StructRNA *self)
 
 PyDoc_STRVAR (pyrna_prop_collection_get_doc, ".. method:: get(key, default=None)\n" "\n" " Returns the value of the item assigned to key or default when not found\n" " (matches Python's dictionary function of the same name).\n" "\n" " :arg key: The identifier for the collection member.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" " :type default: Undefined\n")
 
static PyObject * pyrna_prop_collection_get (BPy_PropertyRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_prop_collection_find_doc, ".. method:: find(key)\n" "\n" " Returns the index of a key in a collection or -1 when not found\n" " (matches Python's string find function of the same name).\n" "\n" " :arg key: The identifier for the collection member.\n" " :type key: string\n" " :return: index of the key.\n" " :rtype: int\n")
 
static PyObject * pyrna_prop_collection_find (BPy_PropertyRNA *self, PyObject *key_ob)
 
static bool foreach_attr_type (BPy_PropertyRNA *self, const char *attr, RawPropertyType *r_raw_type, int *r_attr_tot, bool *r_attr_signed)
 
static int foreach_parse_args (BPy_PropertyRNA *self, PyObject *args, const char **r_attr, PyObject **r_seq, int *r_tot, int *r_size, RawPropertyType *r_raw_type, int *r_attr_tot, bool *r_attr_signed)
 
static bool foreach_compat_buffer (RawPropertyType raw_type, int attr_signed, const char *format)
 
static PyObject * foreach_getset (BPy_PropertyRNA *self, PyObject *args, int set)
 
 PyDoc_STRVAR (pyrna_prop_collection_foreach_get_doc, ".. method:: foreach_get(attr, seq)\n" "\n" " This is a function to give fast access to attributes within a collection.\n")
 
static PyObject * pyrna_prop_collection_foreach_get (BPy_PropertyRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_prop_collection_foreach_set_doc, ".. method:: foreach_set(attr, seq)\n" "\n" " This is a function to give fast access to attributes within a collection.\n")
 
static PyObject * pyrna_prop_collection_foreach_set (BPy_PropertyRNA *self, PyObject *args)
 
static PyObject * pyprop_array_foreach_getset (BPy_PropertyArrayRNA *self, PyObject *args, const bool do_set)
 
 PyDoc_STRVAR (pyrna_prop_array_foreach_get_doc, ".. method:: foreach_get(seq)\n" "\n" " This is a function to give fast access to array data.\n")
 
static PyObject * pyrna_prop_array_foreach_get (BPy_PropertyArrayRNA *self, PyObject *args)
 
 PyDoc_STRVAR (pyrna_prop_array_foreach_set_doc, ".. method:: foreach_set(seq)\n" "\n" " This is a function to give fast access to array data.\n")
 
static PyObject * pyrna_prop_array_foreach_set (BPy_PropertyArrayRNA *self, PyObject *args)
 
static PyObject * pyrna_prop_array_iter (BPy_PropertyArrayRNA *self)
 
static PyObject * pyrna_prop_collection_iter (BPy_PropertyRNA *self)
 
static PyObject * pyrna_struct_new (PyTypeObject *type, PyObject *args, PyObject *UNUSED(kwds))
 
static PyObject * pyrna_prop_new (PyTypeObject *type, PyObject *args, PyObject *UNUSED(kwds))
 
static PyObject * pyrna_param_to_py (PointerRNA *ptr, PropertyRNA *prop, void *data)
 
static PyObject * small_dict_get_item_string (PyObject *dict, const char *key_lookup)
 
static PyObject * pyrna_func_call (BPy_FunctionRNA *self, PyObject *args, PyObject *kw)
 
static PyObject * pyrna_func_doc_get (BPy_FunctionRNA *self, void *UNUSED(closure))
 
static void pyrna_prop_collection_iter_dealloc (BPy_PropertyCollectionIterRNA *self)
 
static PyObject * pyrna_prop_collection_iter_next (BPy_PropertyCollectionIterRNA *self)
 
static PyObject * pyrna_prop_collection_iter_CreatePyObject (PointerRNA *ptr, PropertyRNA *prop)
 
static void pyrna_subtype_set_rna (PyObject *newclass, StructRNA *srna)
 
static PyObject * pyrna_srna_Subtype (StructRNA *srna)
 
static PyObject * pyrna_srna_PyBase (StructRNA *srna)
 
static PyObject * pyrna_srna_ExternalType (StructRNA *srna)
 
static StructRNAsrna_from_ptr (PointerRNA *ptr)
 
PyObject * pyrna_struct_CreatePyObject (PointerRNA *ptr)
 
PyObject * pyrna_prop_CreatePyObject (PointerRNA *ptr, PropertyRNA *prop)
 
PyObject * pyrna_id_CreatePyObject (ID *id)
 
bool pyrna_id_FromPyObject (PyObject *obj, ID **id)
 
bool pyrna_id_CheckPyObject (PyObject *obj)
 
void BPY_rna_init (void)
 
PyObject * BPY_rna_module (void)
 
void BPY_update_rna_module (void)
 
StructRNApyrna_struct_as_srna (PyObject *self, const bool parent, const char *error_prefix)
 
StructRNAsrna_from_self (PyObject *self, const char *error_prefix)
 
static int pyrna_deferred_register_class_from_type_hints (StructRNA *srna, PyTypeObject *py_class)
 
static int pyrna_deferred_register_props (StructRNA *srna, PyObject *class_dict)
 
static int pyrna_deferred_register_class_recursive (StructRNA *srna, PyTypeObject *py_class)
 
int pyrna_deferred_register_class (StructRNA *srna, PyTypeObject *py_class)
 
static int rna_function_arg_count (FunctionRNA *func, int *min_count)
 
static int bpy_class_validate_recursive (PointerRNA *dummyptr, StructRNA *srna, void *py_data, int *have_function)
 
static int bpy_class_validate (PointerRNA *dummyptr, void *py_data, int *have_function)
 
static int bpy_class_call (bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms)
 
static void bpy_class_free (void *pyob_ptr)
 
void pyrna_alloc_types (void)
 
void pyrna_free_types (void)
 
 PyDoc_STRVAR (pyrna_register_class_doc, ".. method:: register_class(cls)\n" "\n" " Register a subclass of a Blender type class.\n" "\n" " :arg cls: Blender type class in:\n" " :class:`bpy.types.Panel`, :class:`bpy.types.UIList`,\n" " :class:`bpy.types.Menu`, :class:`bpy.types.Header`,\n" " :class:`bpy.types.Operator`, :class:`bpy.types.KeyingSetInfo`,\n" " :class:`bpy.types.RenderEngine`\n" " :type cls: class\n" " :raises ValueError:\n" " if the class is not a subclass of a registerable blender class.\n" "\n" " .. note::\n" "\n" " If the class has a *register* class method it will be called\n" " before registration.\n")
 
static PyObject * pyrna_register_class (PyObject *UNUSED(self), PyObject *py_class)
 
static int pyrna_srna_contains_pointer_prop_srna (StructRNA *srna_props, StructRNA *srna, const char **r_prop_identifier)
 
 PyDoc_STRVAR (pyrna_unregister_class_doc, ".. method:: unregister_class(cls)\n" "\n" " Unload the Python class from blender.\n" "\n" " If the class has an *unregister* class method it will be called\n" " before unregistering.\n")
 
static PyObject * pyrna_unregister_class (PyObject *UNUSED(self), PyObject *py_class)
 
void pyrna_struct_type_extend_capi (struct StructRNA *srna, struct PyMethodDef *method, struct PyGetSetDef *getset)
 
static PyObject * pyrna_bl_owner_id_get (PyObject *UNUSED(self))
 
static PyObject * pyrna_bl_owner_id_set (PyObject *UNUSED(self), PyObject *value)
 

Variables

BPy_StructRNAbpy_context_module = NULL
 
static bool rna_disallow_writes = false
 
static uchar mathutils_rna_array_cb_index = -1
 
static Mathutils_Callback mathutils_rna_array_cb
 
static uchar mathutils_rna_matrix_cb_index = -1
 
static Mathutils_Callback mathutils_rna_matrix_cb
 
static PyMappingMethods pyrna_prop_array_as_mapping
 
static PyMappingMethods pyrna_prop_collection_as_mapping
 
static PyNumberMethods pyrna_prop_array_as_number
 
static PyNumberMethods pyrna_prop_collection_as_number
 
static PySequenceMethods pyrna_prop_array_as_sequence
 
static PySequenceMethods pyrna_prop_collection_as_sequence
 
static PySequenceMethods pyrna_struct_as_sequence
 
static PyMappingMethods pyrna_struct_as_mapping
 
static PyGetSetDef pyrna_prop_getseters []
 
static PyGetSetDef pyrna_struct_getseters []
 
static PyGetSetDef pyrna_func_getseters []
 
static struct PyMethodDef pyrna_struct_methods []
 
static struct PyMethodDef pyrna_prop_methods []
 
static struct PyMethodDef pyrna_prop_array_methods []
 
static struct PyMethodDef pyrna_prop_collection_methods []
 
static struct PyMethodDef pyrna_prop_collection_idprop_methods []
 
PyTypeObject pyrna_struct_meta_idprop_Type
 
PyTypeObject pyrna_struct_Type
 
PyTypeObject pyrna_prop_Type
 
PyTypeObject pyrna_prop_array_Type
 
PyTypeObject pyrna_prop_collection_Type
 
static PyTypeObject pyrna_prop_collection_idprop_Type
 
PyTypeObject pyrna_func_Type
 
static PyTypeObject pyrna_prop_collection_iter_Type
 
static PyObject * bpy_types_dict = NULL
 
static PointerRNArna_module_ptr = NULL
 
PyMethodDef meth_bpy_register_class
 
PyMethodDef meth_bpy_unregister_class
 
PyMethodDef meth_bpy_owner_id_get
 
PyMethodDef meth_bpy_owner_id_set
 

RNA Types Module <tt>bpy.types</tt>

static struct PyMethodDef bpy_types_module_methods []
 
static struct PyModuleDef bpy_types_module_def
 
static PyObject * bpy_types_module_getattro (PyObject *self, PyObject *pyname)
 
static PyObject * bpy_types_module_dir (PyObject *self)
 
 PyDoc_STRVAR (bpy_types_module_doc, "Access to internal Blender types")
 
PyObject * BPY_rna_types (void)
 

Detailed Description

This file is the main interface between Python and Blender's data api (RNA), exposing RNA to Python so blender data can be accessed in a Python like way.

The two main types are BPy_StructRNA and BPy_PropertyRNA - the base classes for most of the data Python accesses in blender.

Definition in file bpy_rna.c.

Macro Definition Documentation

◆ BPY_DOC_ID_PROP_TYPE_NOTE

#define BPY_DOC_ID_PROP_TYPE_NOTE
Value:
" .. note::\n" \
"\n" \
" Only the :class:`bpy.types.ID`, :class:`bpy.types.Bone` and\n" \
" :class:`bpy.types.PoseBone` classes support custom properties.\n"

Definition at line 105 of file bpy_rna.c.

◆ BPY_REPLACEMENT_STRING

#define BPY_REPLACEMENT_STRING (   rna_attr,
  py_attr 
)
Value:
else if (STREQ(identifier, rna_attr)) \
{ \
if ((item = PyObject_GetAttr(py_class, py_attr))) { \
if (item != Py_None) { \
if (pyrna_py_to_prop(dummyptr, prop, NULL, item, "validating class:") != 0) { \
Py_DECREF(item); \
return -1; \
} \
} \
Py_DECREF(item); \
} \
else { \
PyErr_Clear(); \
} \
} /* Intentionally allow else here. */
#define STREQ(a, b)
static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyObject *value, const char *error_prefix)
Definition: bpy_rna.c:1702

◆ MATHUTILS_CB_SUBTYPE_COLOR

#define MATHUTILS_CB_SUBTYPE_COLOR   3

Definition at line 408 of file bpy_rna.c.

◆ MATHUTILS_CB_SUBTYPE_EUL

#define MATHUTILS_CB_SUBTYPE_EUL   0

Definition at line 405 of file bpy_rna.c.

◆ MATHUTILS_CB_SUBTYPE_QUAT

#define MATHUTILS_CB_SUBTYPE_QUAT   2

Definition at line 407 of file bpy_rna.c.

◆ MATHUTILS_CB_SUBTYPE_VEC

#define MATHUTILS_CB_SUBTYPE_VEC   1

Definition at line 406 of file bpy_rna.c.

◆ PROP_ALL_VECTOR_SUBTYPES

#define PROP_ALL_VECTOR_SUBTYPES
Value:
case PROP_VELOCITY: \
case PROP_XYZ: \
@ PROP_DIRECTION
Definition: RNA_types.h:141
@ PROP_XYZ
Definition: RNA_types.h:148
@ PROP_ACCELERATION
Definition: RNA_types.h:143
@ PROP_COORDS
Definition: RNA_types.h:153
@ PROP_TRANSLATION
Definition: RNA_types.h:140
@ PROP_XYZ_LENGTH
Definition: RNA_types.h:149
@ PROP_VELOCITY
Definition: RNA_types.h:142

Note that PROP_NONE is included as a vector subtype. this is because it is handy to have x/y access to fcurve keyframes and other fixed size float arrays of length 2-4.

Definition at line 635 of file bpy_rna.c.

◆ PYRNA_PROP_COLLECTION_ABS_INDEX

#define PYRNA_PROP_COLLECTION_ABS_INDEX (   ret_err)
Value:
if (keynum < 0) { \
keynum_abs += RNA_property_collection_length(&self->ptr, self->prop); \
if (keynum_abs < 0) { \
PyErr_Format(PyExc_IndexError, "bpy_prop_collection[%d]: out of range.", keynum); \
return ret_err; \
} \
} \
(void)0
PyObject * self
Definition: bpy_driver.c:185
int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3903

Definition at line 2381 of file bpy_rna.c.

◆ USE_MATHUTILS

#define USE_MATHUTILS

Definition at line 80 of file bpy_rna.c.

◆ USE_PEDANTIC_WRITE

#define USE_PEDANTIC_WRITE

Definition at line 79 of file bpy_rna.c.

◆ USE_POSTPONED_ANNOTATIONS

#define USE_POSTPONED_ANNOTATIONS

This must be enabled to support Python 3.10's postponed annotations, from __future__ import annotations.

This has the disadvantage of evaluating strings at run-time, in the future we might be able to reinstate the older, more efficient logic using descriptors, see: pep-0649

Definition at line 90 of file bpy_rna.c.

◆ USE_STRING_COERCE

#define USE_STRING_COERCE

Definition at line 81 of file bpy_rna.c.

Function Documentation

◆ bpy_class_call()

static int bpy_class_call ( bContext C,
PointerRNA ptr,
FunctionRNA func,
ParameterList parms 
)
static

◆ bpy_class_free()

static void bpy_class_free ( void *  pyob_ptr)
static

Definition at line 8710 of file bpy_rna.c.

References bpy_intern_str_bl_rna, G, G_DEBUG_PYTHON, PyC_ObSpit(), and self.

Referenced by pyrna_free_types(), and pyrna_register_class().

◆ bpy_class_validate()

static int bpy_class_validate ( PointerRNA dummyptr,
void *  py_data,
int *  have_function 
)
static

Definition at line 8379 of file bpy_rna.c.

References bpy_class_validate_recursive(), and PointerRNA::type.

Referenced by pyrna_register_class().

◆ bpy_class_validate_recursive()

static int bpy_class_validate_recursive ( PointerRNA dummyptr,
StructRNA srna,
void *  py_data,
int *  have_function 
)
static

◆ BPY_id_release()

void BPY_id_release ( struct ID id)

Definition at line 306 of file bpy_rna.c.

Referenced by BKE_libblock_free_data_py().

◆ BPY_rna_init()

void BPY_rna_init ( void  )

◆ BPY_rna_module()

PyObject* BPY_rna_module ( void  )

◆ BPY_rna_types()

PyObject* BPY_rna_types ( void  )

◆ bpy_types_module_dir()

static PyObject* bpy_types_module_dir ( PyObject *  self)
static

Definition at line 7776 of file bpy_rna.c.

References pos, ret, RNA_PROP_BEGIN, RNA_PROP_END, RNA_struct_identifier(), and state.

◆ bpy_types_module_getattro()

static PyObject* bpy_types_module_getattro ( PyObject *  self,
PyObject *  pyname 
)
static

◆ BPY_update_rna_module()

void BPY_update_rna_module ( void  )

Definition at line 7701 of file bpy_rna.c.

References PointerRNA::data, G_MAIN, RNA_main_pointer_create(), and rna_module_ptr.

Referenced by BPY_driver_exec(), and BPY_modules_update().

◆ deferred_register_prop()

static int deferred_register_prop ( StructRNA srna,
PyObject *  key,
PyObject *  item 
)
static

◆ foreach_attr_type()

static bool foreach_attr_type ( BPy_PropertyRNA self,
const char *  attr,
RawPropertyType r_raw_type,
int *  r_attr_tot,
bool *  r_attr_signed 
)
static

◆ foreach_compat_buffer()

static bool foreach_compat_buffer ( RawPropertyType  raw_type,
int  attr_signed,
const char *  format 
)
static

◆ foreach_getset()

static PyObject* foreach_getset ( BPy_PropertyRNA self,
PyObject *  args,
int  set 
)
static

◆ foreach_parse_args()

static int foreach_parse_args ( BPy_PropertyRNA self,
PyObject *  args,
const char **  r_attr,
PyObject **  r_seq,
int *  r_tot,
int *  r_size,
RawPropertyType r_raw_type,
int *  r_attr_tot,
bool *  r_attr_signed 
)
static

◆ mathutils_rna_generic_check()

static int mathutils_rna_generic_check ( BaseMathObject bmo)
static

Definition at line 410 of file bpy_rna.c.

References PYRNA_PROP_CHECK_INT.

◆ mathutils_rna_matrix_get()

static int mathutils_rna_matrix_get ( BaseMathObject bmo,
int   UNUSEDsubtype 
)
static

Definition at line 554 of file bpy_rna.c.

References NULL, PYRNA_PROP_CHECK_INT, RNA_property_float_get_array(), and self.

◆ mathutils_rna_matrix_set()

static int mathutils_rna_matrix_set ( BaseMathObject bmo,
int   UNUSEDsubtype 
)
static

◆ mathutils_rna_vector_get()

static int mathutils_rna_vector_get ( BaseMathObject bmo,
int  subtype 
)
static

◆ mathutils_rna_vector_get_index()

static int mathutils_rna_vector_get_index ( BaseMathObject bmo,
int   UNUSEDsubtype,
int  index 
)
static

Definition at line 495 of file bpy_rna.c.

References NULL, PYRNA_PROP_CHECK_INT, RNA_property_float_get_index(), and self.

◆ mathutils_rna_vector_set()

static int mathutils_rna_vector_set ( BaseMathObject bmo,
int  subtype 
)
static

◆ mathutils_rna_vector_set_index()

static int mathutils_rna_vector_set_index ( BaseMathObject bmo,
int   UNUSEDsubtype,
int  index 
)
static

◆ prop_subscript_ass_array_int()

static int prop_subscript_ass_array_int ( BPy_PropertyArrayRNA self,
Py_ssize_t  keynum,
PyObject *  value 
)
static

◆ prop_subscript_ass_array_slice()

static int prop_subscript_ass_array_slice ( PointerRNA ptr,
PropertyRNA prop,
int  arraydim,
int  arrayoffset,
int  start,
int  stop,
int  length,
PyObject *  value_orig 
)
static

◆ prop_subscript_ass_array_slice__as_seq_fast()

static PyObject* prop_subscript_ass_array_slice__as_seq_fast ( PyObject *  value,
int  length 
)
static

◆ prop_subscript_ass_array_slice__bool_recursive()

static int prop_subscript_ass_array_slice__bool_recursive ( PyObject **  value_items,
bool *  value,
int  totdim,
const int  dimsize[] 
)
static

◆ prop_subscript_ass_array_slice__float_recursive()

static int prop_subscript_ass_array_slice__float_recursive ( PyObject **  value_items,
float value,
int  totdim,
const int  dimsize[],
const float  range[2] 
)
static

◆ prop_subscript_ass_array_slice__int_recursive()

static int prop_subscript_ass_array_slice__int_recursive ( PyObject **  value_items,
int *  value,
int  totdim,
const int  dimsize[],
const int  range[2] 
)
static

◆ PyDoc_STRVAR() [1/35]

PyDoc_STRVAR ( bpy_types_module_doc  ,
"Access to internal Blender types  
)

◆ PyDoc_STRVAR() [2/35]

PyDoc_STRVAR ( pyrna_prop_array_foreach_get_doc  ,
".. method:: foreach_get(seq)\n" "\n" " This is a function to give fast access to array data.\n"   
)

◆ PyDoc_STRVAR() [3/35]

PyDoc_STRVAR ( pyrna_prop_array_foreach_set_doc  ,
".. method:: foreach_set(seq)\n" "\n" " This is a function to give fast access to array data.\n"   
)

◆ PyDoc_STRVAR() [4/35]

PyDoc_STRVAR ( pyrna_prop_as_bytes_doc  ,
".. method:: as_bytes()\n" "\n" " Returns this string property as a byte rather than a Python string.\n" "\n" " :return: The string as bytes.\n" " :rtype: bytes\n"   
)

◆ PyDoc_STRVAR() [5/35]

PyDoc_STRVAR ( pyrna_prop_collection_find_doc  ,
".. method:: find(key)\n" "\n" " Returns the index of a key in a collection or -1 when not found\n" " (matches Python's string find function of the same name).\n" "\n" " :arg key: The identifier for the collection member.\n" " :type key: string\n" " :return: index of the key.\n" " :rtype: int\n"   
)

◆ PyDoc_STRVAR() [6/35]

PyDoc_STRVAR ( pyrna_prop_collection_foreach_get_doc  ,
".. method:: foreach_get(attr, seq)\n" "\n" " This is a function to give fast access to attributes within a collection.\n"   
)

◆ PyDoc_STRVAR() [7/35]

PyDoc_STRVAR ( pyrna_prop_collection_foreach_set_doc  ,
".. method:: foreach_set(attr, seq)\n" "\n" " This is a function to give fast access to attributes within a collection.\n"   
)

◆ PyDoc_STRVAR() [8/35]

PyDoc_STRVAR ( pyrna_prop_collection_get_doc  ,
".. method:: get(key, default=None)\n" "\n" " Returns the value of the item assigned to key or default when not found\n" " (matches Python's dictionary function of the same name).\n" "\n" " :arg key: The identifier for the collection member.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" " :type default: Undefined\n"   
)

◆ PyDoc_STRVAR() [9/35]

PyDoc_STRVAR ( pyrna_prop_collection_items_doc  ,
".. method:: items()\n" "\n" " Return the identifiers of collection members\n" " (matching Python's dict.items() functionality).\n" "\n" " :return: (key, value) pairs for each member of this collection.\n" " :rtype: list of tuples\n"   
)

◆ PyDoc_STRVAR() [10/35]

PyDoc_STRVAR ( pyrna_prop_collection_keys_doc  ,
".. method:: keys()\n" "\n" " Return the identifiers of collection members\n" " (matching Python's dict.keys() functionality).\n" "\n" " :return: the identifiers for each member of this collection.\n" " :rtype: list of strings\n"   
)

◆ PyDoc_STRVAR() [11/35]

PyDoc_STRVAR ( pyrna_prop_collection_values_doc  ,
".. method:: values()\n" "\n" " Return the values of collection\n" " (matching Python's dict.values() functionality).\n" "\n" " :return: the members of this collection.\n" " :rtype: list\n"   
)

◆ PyDoc_STRVAR() [12/35]

PyDoc_STRVAR ( pyrna_prop_path_from_id_doc  ,
".. method:: path_from_id()\n" "\n" " Returns the data path from the ID to this property (string).\n" "\n" " :return: The path from :class:`bpy.types.bpy_struct.id_data` to this property.\n" " :rtype: str\n"   
)

◆ PyDoc_STRVAR() [13/35]

PyDoc_STRVAR ( pyrna_prop_update_doc  ,
".. method:: update()\n" "\n" " Execute the properties update callback.\n" "\n" " .. note::\n" " This is called when assigning a  property,
\n" " however in rare cases it 's useful to call explicitly.\n"   
)

◆ PyDoc_STRVAR() [14/35]

PyDoc_STRVAR ( pyrna_register_class_doc  ,
".. method:: register_class(cls)\n" "\n" " Register a subclass of a Blender type class.\n" "\n" " :arg cls: Blender type class in:\n" " :class:`bpy.types.Panel ,
:class:`bpy.types.UIList`  ,
\n" " :class:`bpy.types.Menu ,
:class:`bpy.types.Header ,
\n" " :class:`bpy.types.Operator`  ,
:class:`bpy.types.KeyingSetInfo ,
\n" " :class:`bpy.types.RenderEngine`\n" " :type cls:class\n" " :raises ValueError:\n" " if the class is not a subclass of a registerable blender class.\n" "\n" " .. note::\n" "\n" " If the class has a *register *class method it will be called\n" " before registration.\n"   
)
Warning
memory leak!

There is currently a bug where moving the registration of a Python class does not properly manage reference-counts from the Python class. As the srna owns the Python class this should not be so tricky, but changing the references as you'd expect when changing ownership crashes blender on exit so I had to comment out the #Py_DECREF. This is not so bad because the leak only happens when re-registering (continuously running SCRIPT_OT_reload).

  • Should still be fixed - Campbell

◆ PyDoc_STRVAR() [15/35]

PyDoc_STRVAR ( pyrna_struct_as_pointer_doc  ,
".. method:: as_pointer()\n" "\n" " Returns the memory address which holds a pointer to Blender's internal data\n" "\n" " :return: int (memory address).\n" " :rtype: int\n" "\n" " .. note:: This is intended only for advanced script writers who need to\n" " pass blender data to their own C/Python modules.\n"   
)

◆ PyDoc_STRVAR() [16/35]

PyDoc_STRVAR ( pyrna_struct_bl_rna_get_subclass_doc  ,
".. classmethod:: bl_rna_get_subclass(id, default=None)\n" "\n" " :arg id: The RNA type identifier.\n" " :type id: string\n" " :return: The RNA type or default when not found.\n" " :rtype: :class:`bpy.types.Struct` subclass\n"   
)

◆ PyDoc_STRVAR() [17/35]

PyDoc_STRVAR ( pyrna_struct_bl_rna_get_subclass_py_doc  ,
".. classmethod:: bl_rna_get_subclass_py(id, default=None)\n" "\n" " :arg id: The RNA type identifier.\n" " :type id: string\n" " :return: The class or default when not found.\n" " :rtype: type\n"   
)

◆ PyDoc_STRVAR() [18/35]

PyDoc_STRVAR ( pyrna_struct_get_data_doc  ,
"The data this property is  using,
*type *:class:`bpy.types.bpy_struct`"   
)

◆ PyDoc_STRVAR() [19/35]

PyDoc_STRVAR ( pyrna_struct_get_doc  ,
".. method:: get(key, default=None)\n" "\n" " Returns the value of the custom property assigned to key or default\n" " when not found (matches Python's dictionary function of the same name).\n" "\n" " :arg key: The key associated with the custom property.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" " :type default: Undefined\n" "\n"  BPY_DOC_ID_PROP_TYPE_NOTE 
)

◆ PyDoc_STRVAR() [20/35]

PyDoc_STRVAR ( pyrna_struct_get_id_data_doc  ,
"The :class:`bpy.types.ID` object this datablock is from or  None,
(not available for " "all data types)"   
)

◆ PyDoc_STRVAR() [21/35]

PyDoc_STRVAR ( pyrna_struct_get_rna_type_doc  ,
"The property type for introspection"   
)

◆ PyDoc_STRVAR() [22/35]

PyDoc_STRVAR ( pyrna_struct_is_property_hidden_doc  ,
".. method:: is_property_hidden(property)\n" "\n" " Check if a property is hidden.\n" "\n" " :return: True when the property is hidden.\n" " :rtype: boolean\n"   
)

◆ PyDoc_STRVAR() [23/35]

PyDoc_STRVAR ( pyrna_struct_is_property_overridable_library_doc  ,
".. method:: is_property_overridable_library(property)\n" "\n" " Check if a property is overridable.\n" "\n" " :return: True when the property is overridable.\n" " :rtype: boolean\n"   
)

◆ PyDoc_STRVAR() [24/35]

PyDoc_STRVAR ( pyrna_struct_is_property_readonly_doc  ,
".. method:: is_property_readonly(property)\n" "\n" " Check if a property is readonly.\n" "\n" " :return: True when the property is readonly (not writable).\n" " :rtype: boolean\n"   
)

◆ PyDoc_STRVAR() [25/35]

PyDoc_STRVAR ( pyrna_struct_is_property_set_doc  ,
".. method:: is_property_set(property, ghost=True)\n" "\n" " Check if a property is  set,
use for testing operator properties.\n" "\n" " :arg ghost:Used for operators that re-run with previous settings.\n" " In this case the property is not marked as  set,
\n" " yet the value from the previous execution is used.\n" "\n" " In rare cases you may want to set this option to false.\n" "\n" " :type ghost:boolean\n" " :return:True when the property has been set.\n" " :rtype:boolean\n"   
)

◆ PyDoc_STRVAR() [26/35]

PyDoc_STRVAR ( pyrna_struct_items_doc  ,
".. method:: items()\n" "\n" " Returns the items of this objects custom properties (matches Python's\n" " dictionary function of the same name).\n" "\n" " :return: custom property  key,
value pairs.\n" " :rtype:list of  key,
value tuples\n" "\n"  BPY_DOC_ID_PROP_TYPE_NOTE 
)

◆ PyDoc_STRVAR() [27/35]

PyDoc_STRVAR ( pyrna_struct_keys_doc  ,
".. method:: keys()\n" "\n" " Returns the keys of this objects custom properties (matches Python's\n" " dictionary function of the same name).\n" "\n" " :return: custom property keys.\n" " :rtype: list of strings\n" "\n"  BPY_DOC_ID_PROP_TYPE_NOTE 
)

◆ PyDoc_STRVAR() [28/35]

PyDoc_STRVAR ( pyrna_struct_path_from_id_doc  ,
".. method:: path_from_id(property=\"\")\n" "\n" " Returns the data path from the ID to this object (string).\n" "\n" " :arg property: Optional property name which can be used if the path is\n" " to a property of this object.\n" " :type property: string\n" " :return: The path from :class:`bpy.types.bpy_struct.id_data`\n" " to this struct and property (when given).\n" " :rtype: str\n"   
)

◆ PyDoc_STRVAR() [29/35]

PyDoc_STRVAR ( pyrna_struct_path_resolve_doc  ,
".. method:: path_resolve(path, coerce=True)\n" "\n" " Returns the property from the  path,
raise an exception when not found.\n" "\n" " :arg path:path which this property resolves.\n" " :type path:string\n" " :arg coerce:optional  argument,
when  True,
the property will be converted\n" " into its Python representation.\n" " :type coerce:boolean\n"   
)

◆ PyDoc_STRVAR() [30/35]

PyDoc_STRVAR ( pyrna_struct_pop_doc  ,
".. method:: pop(key, default=None)\n" "\n" " Remove and return the value of the custom property assigned to key or default\n" " when not found (matches Python's dictionary function of the same name).\n" "\n" " :arg key: The key associated with the custom property.\n" " :type key: string\n" " :arg default: Optional argument for the value to return if\n" " *key* is not found.\n" " :type default: Undefined\n" "\n"  BPY_DOC_ID_PROP_TYPE_NOTE 
)

◆ PyDoc_STRVAR() [31/35]

PyDoc_STRVAR ( pyrna_struct_property_overridable_library_set_doc  ,
".. method:: property_overridable_library_set(property, overridable)\n" "\n" " Define a property as overridable or not (only for custom properties!).\n" "\n" " :return: True when the overridable status of the property was successfully set.\n" " :rtype: boolean\n"   
)

◆ PyDoc_STRVAR() [32/35]

PyDoc_STRVAR ( pyrna_struct_property_unset_doc  ,
".. method:: property_unset(property)\n" "\n" " Unset a  property,
will use default value afterward.\n"   
)

◆ PyDoc_STRVAR() [33/35]

PyDoc_STRVAR ( pyrna_struct_type_recast_doc  ,
".. method:: type_recast()\n" "\n" " Return a new  instance,
this is needed because types\n" " such as textures can be changed at runtime.\n" "\n" " :return:a new instance of this object with the type initialized again.\n" " :rtype:subclass of :class:`bpy.types.bpy_struct`\n"   
)

◆ PyDoc_STRVAR() [34/35]

PyDoc_STRVAR ( pyrna_struct_values_doc  ,
".. method:: values()\n" "\n" " Returns the values of this objects custom properties (matches Python's\n" " dictionary function of the same name).\n" "\n" " :return: custom property values.\n" " :rtype: list\n" "\n"  BPY_DOC_ID_PROP_TYPE_NOTE 
)

◆ PyDoc_STRVAR() [35/35]

PyDoc_STRVAR ( pyrna_unregister_class_doc  ,
".. method:: unregister_class(cls)\n" "\n" " Unload the Python class from blender.\n" "\n" " If the class has an *unregister* class method it will be called\n" " before unregistering.\n"   
)

◆ pyprop_array_foreach_getset()

static PyObject* pyprop_array_foreach_getset ( BPy_PropertyArrayRNA self,
PyObject *  args,
const bool  do_set 
)
static

◆ pyrna_alloc_types()

void pyrna_alloc_types ( void  )
Note
This isn't essential to run on startup, since subtypes will lazy initialize. But keep running in debug mode so we get immediate notification of bad class hierarchy or any errors in "bpy_types.py" at load time, so errors don't go unnoticed.

Definition at line 8743 of file bpy_rna.c.

References NULL, BPy_TypesModule_State::prop, ptr, pyrna_struct_Subtype(), RNA_blender_rna_pointer_create(), RNA_PROP_BEGIN, RNA_PROP_END, and RNA_struct_find_property().

Referenced by BPY_python_start().

◆ pyrna_bl_owner_id_get()

static PyObject* pyrna_bl_owner_id_get ( PyObject *  UNUSEDself)
static

Definition at line 9165 of file bpy_rna.c.

References RNA_struct_state_owner_get().

◆ pyrna_bl_owner_id_set()

static PyObject* pyrna_bl_owner_id_set ( PyObject *  UNUSEDself,
PyObject *  value 
)
static

Definition at line 9174 of file bpy_rna.c.

References NULL, and RNA_struct_state_owner_set().

◆ pyrna_deferred_register_class()

int pyrna_deferred_register_class ( StructRNA srna,
PyTypeObject *  py_class 
)

◆ pyrna_deferred_register_class_from_type_hints()

static int pyrna_deferred_register_class_from_type_hints ( StructRNA srna,
PyTypeObject *  py_class 
)
static

Extract __annotations__ using typing.get_type_hints which handles the delayed evaluation.

Definition at line 8010 of file bpy_rna.c.

References BLI_assert, deferred_register_prop(), NULL, pos, and ret.

Referenced by pyrna_deferred_register_class().

◆ pyrna_deferred_register_class_recursive()

static int pyrna_deferred_register_class_recursive ( StructRNA srna,
PyTypeObject *  py_class 
)
static

Definition at line 8089 of file bpy_rna.c.

References len, pyrna_deferred_register_props(), pyrna_struct_Type, and ret.

Referenced by pyrna_deferred_register_class().

◆ pyrna_deferred_register_props()

static int pyrna_deferred_register_props ( StructRNA srna,
PyObject *  class_dict 
)
static

◆ pyrna_dir_members_py()

static void pyrna_dir_members_py ( PyObject *  list,
PyObject *  self 
)
static

◆ pyrna_dir_members_py__add_keys()

static void pyrna_dir_members_py__add_keys ( PyObject *  list,
PyObject *  dict 
)
static

Definition at line 4141 of file bpy_rna.c.

Referenced by pyrna_dir_members_py().

◆ pyrna_dir_members_rna()

static void pyrna_dir_members_rna ( PyObject *  list,
PointerRNA ptr 
)
static

◆ pyrna_enum_as_string()

static const char* pyrna_enum_as_string ( PointerRNA ptr,
PropertyRNA prop 
)
static

◆ pyrna_enum_bitfield_to_py()

PyObject* pyrna_enum_bitfield_to_py ( const EnumPropertyItem items,
int  value 
)

Definition at line 1444 of file bpy_rna.c.

References NULL, ret, RNA_enum_bitflag_identifiers(), and RNA_ENUM_BITFLAG_SIZE.

Referenced by pyop_call().

◆ pyrna_enum_to_py()

static PyObject* pyrna_enum_to_py ( PointerRNA ptr,
PropertyRNA prop,
int  val 
)
static

◆ pyrna_enum_value_from_id()

int pyrna_enum_value_from_id ( const EnumPropertyItem item,
const char *  identifier,
int *  r_value,
const char *  error_prefix 
)

◆ pyrna_free_types()

void pyrna_free_types ( void  )

◆ pyrna_func_call()

static PyObject* pyrna_func_call ( BPy_FunctionRNA self,
PyObject *  args,
PyObject *  kw 
)
static

◆ pyrna_func_doc_get() [1/2]

static PyObject* pyrna_func_doc_get ( BPy_FunctionRNA self,
void *  closure 
)
static

◆ pyrna_func_doc_get() [2/2]

static PyObject* pyrna_func_doc_get ( BPy_FunctionRNA self,
void *  UNUSEDclosure 
)
static

◆ pyrna_func_repr()

static PyObject* pyrna_func_repr ( BPy_FunctionRNA self)
static

Definition at line 1125 of file bpy_rna.c.

References RNA_function_identifier(), RNA_struct_identifier(), and self.

◆ pyrna_func_to_py()

static PyObject* pyrna_func_to_py ( const PointerRNA ptr,
FunctionRNA func 
)
static

◆ pyrna_id_CheckPyObject()

bool pyrna_id_CheckPyObject ( PyObject *  obj)

Definition at line 7633 of file bpy_rna.c.

References BPy_StructRNA_Check, ptr, RNA_struct_is_ID(), and PointerRNA::type.

Referenced by idp_from_PyObject(), and pyrna_id_FromPyObject().

◆ pyrna_id_CreatePyObject()

PyObject* pyrna_id_CreatePyObject ( ID id)

◆ pyrna_id_FromPyObject()

bool pyrna_id_FromPyObject ( PyObject *  obj,
ID **  id 
)

Definition at line 7622 of file bpy_rna.c.

References NULL, and pyrna_id_CheckPyObject().

Referenced by bpy_batch_remove(), bpy_lib_write(), and idp_from_DatablockPointer().

◆ pyrna_invalidate()

void pyrna_invalidate ( BPy_DummyPointerRNA self)

Definition at line 133 of file bpy_rna.c.

References RNA_POINTER_INVALIDATE, and self.

Referenced by BPY_DECREF_RNA_INVALIDATE().

◆ pyrna_math_object_from_array()

PyObject* pyrna_math_object_from_array ( PointerRNA ptr,
PropertyRNA prop 
)

◆ pyrna_param_to_py()

static PyObject* pyrna_param_to_py ( PointerRNA ptr,
PropertyRNA prop,
void *  data 
)
static

◆ pyrna_prop_array_ass_subscript()

static int pyrna_prop_array_ass_subscript ( BPy_PropertyArrayRNA self,
PyObject *  key,
PyObject *  value 
)
static

◆ pyrna_prop_array_bool()

static int pyrna_prop_array_bool ( BPy_PropertyRNA self)
static

Definition at line 2357 of file bpy_rna.c.

References PYRNA_PROP_CHECK_INT, RNA_property_array_length(), and self.

◆ pyrna_prop_array_contains()

static int pyrna_prop_array_contains ( BPy_PropertyRNA self,
PyObject *  value 
)
static

Definition at line 3384 of file bpy_rna.c.

References pyrna_array_contains_py(), and self.

◆ pyrna_prop_array_dealloc()

static void pyrna_prop_array_dealloc ( BPy_PropertyRNA self)
static

Definition at line 1232 of file bpy_rna.c.

References NULL, and self.

◆ pyrna_prop_array_foreach_get()

static PyObject* pyrna_prop_array_foreach_get ( BPy_PropertyArrayRNA self,
PyObject *  args 
)
static

Definition at line 5625 of file bpy_rna.c.

References pyprop_array_foreach_getset(), and PYRNA_PROP_CHECK_OBJ.

◆ pyrna_prop_array_foreach_set()

static PyObject* pyrna_prop_array_foreach_set ( BPy_PropertyArrayRNA self,
PyObject *  args 
)
static

Definition at line 5636 of file bpy_rna.c.

References pyprop_array_foreach_getset(), and PYRNA_PROP_CHECK_OBJ.

◆ pyrna_prop_array_getattro()

static PyObject* pyrna_prop_array_getattro ( BPy_PropertyRNA self,
PyObject *  pyname 
)
static

Definition at line 4582 of file bpy_rna.c.

◆ pyrna_prop_array_iter()

static PyObject* pyrna_prop_array_iter ( BPy_PropertyArrayRNA self)
static

◆ pyrna_prop_array_length()

static Py_ssize_t pyrna_prop_array_length ( BPy_PropertyArrayRNA self)
static

◆ pyrna_prop_array_repr()

static PyObject* pyrna_prop_array_repr ( BPy_PropertyArrayRNA self)
static

Definition at line 1120 of file bpy_rna.c.

References pyrna_prop_repr_ex(), and self.

◆ pyrna_prop_array_subscript()

static PyObject* pyrna_prop_array_subscript ( BPy_PropertyArrayRNA self,
PyObject *  key 
)
static

◆ pyrna_prop_array_subscript_int()

static PyObject* pyrna_prop_array_subscript_int ( BPy_PropertyArrayRNA self,
int  keynum 
)
static

◆ pyrna_prop_array_subscript_slice()

static PyObject * pyrna_prop_array_subscript_slice ( BPy_PropertyArrayRNA self,
PointerRNA ptr,
PropertyRNA prop,
Py_ssize_t  start,
Py_ssize_t  stop,
Py_ssize_t  length 
)
static

TODO - dimensions

Note
Could also use pyrna_prop_array_to_py_index(self, count) in a loop, but it's much slower since at the moment it reads (and even allocates) the entire array for each index.

Definition at line 2647 of file bpy_rna.c.

References BLI_assert, count, length(), NULL, PROP_BOOLEAN, PROP_FLOAT, PROP_INT, ptr, pyrna_prop_array_to_py_index(), PYRNA_STACK_ARRAY, RNA_property_array_dimension(), RNA_property_boolean_get_array(), RNA_property_float_get_array(), RNA_property_int_get_array(), and RNA_property_type().

Referenced by pyrna_math_object_from_array(), pyrna_prop_array_iter(), and pyrna_prop_array_subscript().

◆ pyrna_prop_array_to_py_index()

static PyObject* pyrna_prop_array_to_py_index ( BPy_PropertyArrayRNA self,
int  index 
)
static

◆ pyrna_prop_as_bytes()

static PyObject* pyrna_prop_as_bytes ( BPy_PropertyRNA self)
static

◆ pyrna_prop_collection_ass_subscript()

static int pyrna_prop_collection_ass_subscript ( BPy_PropertyRNA self,
PyObject *  key,
PyObject *  value 
)
static

◆ pyrna_prop_collection_ass_subscript_int()

static int pyrna_prop_collection_ass_subscript_int ( BPy_PropertyRNA self,
Py_ssize_t  keynum,
PyObject *  value 
)
static

◆ pyrna_prop_collection_bool()

static int pyrna_prop_collection_bool ( BPy_PropertyRNA self)
static

◆ pyrna_prop_collection_contains()

static int pyrna_prop_collection_contains ( BPy_PropertyRNA self,
PyObject *  key 
)
static

◆ pyrna_prop_collection_find()

static PyObject* pyrna_prop_collection_find ( BPy_PropertyRNA self,
PyObject *  key_ob 
)
static

◆ pyrna_prop_collection_foreach_get()

static PyObject* pyrna_prop_collection_foreach_get ( BPy_PropertyRNA self,
PyObject *  args 
)
static

Definition at line 5457 of file bpy_rna.c.

References foreach_getset(), and PYRNA_PROP_CHECK_OBJ.

◆ pyrna_prop_collection_foreach_set()

static PyObject* pyrna_prop_collection_foreach_set ( BPy_PropertyRNA self,
PyObject *  args 
)
static

Definition at line 5468 of file bpy_rna.c.

References foreach_getset(), and PYRNA_PROP_CHECK_OBJ.

◆ pyrna_prop_collection_get()

static PyObject* pyrna_prop_collection_get ( BPy_PropertyRNA self,
PyObject *  args 
)
static

◆ pyrna_prop_collection_getattro()

static PyObject* pyrna_prop_collection_getattro ( BPy_PropertyRNA self,
PyObject *  pyname 
)
static

◆ pyrna_prop_collection_idprop_add()

static PyObject* pyrna_prop_collection_idprop_add ( BPy_PropertyRNA self)
static

Odd case, we need to be able return a Python method from a #PyTypeObject.tp_getset.

Definition at line 4701 of file bpy_rna.c.

References PointerRNA::data, NULL, pyrna_struct_CreatePyObject(), rna_disallow_writes, rna_id_write_error(), RNA_property_collection_add(), and self.

◆ pyrna_prop_collection_idprop_clear()

static PyObject* pyrna_prop_collection_idprop_clear ( BPy_PropertyRNA self)
static

◆ pyrna_prop_collection_idprop_move()

static PyObject* pyrna_prop_collection_idprop_move ( BPy_PropertyRNA self,
PyObject *  args 
)
static

◆ pyrna_prop_collection_idprop_remove()

static PyObject* pyrna_prop_collection_idprop_remove ( BPy_PropertyRNA self,
PyObject *  value 
)
static

◆ pyrna_prop_collection_items()

static PyObject* pyrna_prop_collection_items ( BPy_PropertyRNA self)
static

◆ pyrna_prop_collection_iter()

static PyObject * pyrna_prop_collection_iter ( BPy_PropertyRNA self)
static

Definition at line 7166 of file bpy_rna.c.

References pyrna_prop_collection_iter_CreatePyObject(), and self.

◆ pyrna_prop_collection_iter_CreatePyObject()

static PyObject* pyrna_prop_collection_iter_CreatePyObject ( PointerRNA ptr,
PropertyRNA prop 
)
static

◆ pyrna_prop_collection_iter_dealloc()

static void pyrna_prop_collection_iter_dealloc ( BPy_PropertyCollectionIterRNA self)
static

Definition at line 7197 of file bpy_rna.c.

References NULL, RNA_property_collection_end(), and self.

◆ pyrna_prop_collection_iter_next()

static PyObject * pyrna_prop_collection_iter_next ( BPy_PropertyCollectionIterRNA self)
static

Definition at line 7171 of file bpy_rna.c.

References NULL, pyrna_struct_CreatePyObject(), RNA_property_collection_next(), and self.

◆ pyrna_prop_collection_keys()

static PyObject* pyrna_prop_collection_keys ( BPy_PropertyRNA self)
static

Definition at line 4855 of file bpy_rna.c.

References MEM_freeN, ret, RNA_PROP_BEGIN, RNA_PROP_END, RNA_struct_name_get_alloc(), and self.

◆ pyrna_prop_collection_length()

static Py_ssize_t pyrna_prop_collection_length ( BPy_PropertyRNA self)
static

Definition at line 2348 of file bpy_rna.c.

References PYRNA_PROP_CHECK_INT, RNA_property_collection_length(), and self.

Referenced by pyrna_prop_str().

◆ pyrna_prop_collection_setattro()

static int pyrna_prop_collection_setattro ( BPy_PropertyRNA self,
PyObject *  pyname,
PyObject *  value 
)
static

◆ pyrna_prop_collection_subscript()

static PyObject* pyrna_prop_collection_subscript ( BPy_PropertyRNA self,
PyObject *  key 
)
static

◆ pyrna_prop_collection_subscript_int()

static PyObject* pyrna_prop_collection_subscript_int ( BPy_PropertyRNA self,
Py_ssize_t  keynum 
)
static

◆ pyrna_prop_collection_subscript_slice()

static PyObject* pyrna_prop_collection_subscript_slice ( BPy_PropertyRNA self,
Py_ssize_t  start,
Py_ssize_t  stop 
)
static

◆ pyrna_prop_collection_subscript_str()

static PyObject* pyrna_prop_collection_subscript_str ( BPy_PropertyRNA self,
const char *  keyname 
)
static

◆ pyrna_prop_collection_subscript_str_lib_pair()

static PyObject* pyrna_prop_collection_subscript_str_lib_pair ( BPy_PropertyRNA self,
PyObject *  key,
const char *  err_prefix,
const bool  err_not_found 
)
static

◆ pyrna_prop_collection_subscript_str_lib_pair_ptr()

static int pyrna_prop_collection_subscript_str_lib_pair_ptr ( BPy_PropertyRNA self,
PyObject *  key,
const char *  err_prefix,
const short  err_not_found,
PointerRNA r_ptr 
)
static

Special case: bpy.data.objects["some_id_name", "//some_lib_name.blend"] also for: bpy.data.objects.get(("some_id_name", "//some_lib_name.blend"), fallback)

Note
error codes since this is not to be called directly from Python, this matches Python's __contains__ values C-API.
  • -1: exception set
  • 0: not found
  • 1: found

Definition at line 2504 of file bpy_rna.c.

References BLI_findstring(), id, lib, ID::lib, Main::libraries, ID::name, NULL, RNA_BlendData, RNA_PROP_BEGIN, RNA_PROP_END, RNA_struct_identifier(), self, and STREQLEN.

Referenced by pyrna_prop_collection_contains(), and pyrna_prop_collection_subscript_str_lib_pair().

◆ pyrna_prop_collection_type_check()

static int pyrna_prop_collection_type_check ( BPy_PropertyRNA self,
PyObject *  value 
)
static

◆ pyrna_prop_collection_values()

static PyObject * pyrna_prop_collection_values ( BPy_PropertyRNA self)
static

Definition at line 4928 of file bpy_rna.c.

References pyrna_prop_collection_subscript_slice().

◆ pyrna_prop_compare()

static int pyrna_prop_compare ( BPy_PropertyRNA a,
BPy_PropertyRNA b 
)
static

◆ pyrna_prop_CreatePyObject()

PyObject* pyrna_prop_CreatePyObject ( PointerRNA ptr,
PropertyRNA prop 
)

◆ pyrna_prop_dealloc()

static void pyrna_prop_dealloc ( BPy_PropertyRNA self)
static

Definition at line 1221 of file bpy_rna.c.

References NULL, and self.

◆ pyrna_prop_dir()

static PyObject* pyrna_prop_dir ( BPy_PropertyRNA self)
static

◆ pyrna_prop_hash()

static long pyrna_prop_hash ( BPy_PropertyRNA self)
static

Definition at line 1139 of file bpy_rna.c.

References NULL, self, x, and y.

◆ pyrna_prop_new()

static PyObject* pyrna_prop_new ( PyTypeObject *  type,
PyObject *  args,
PyObject *  UNUSEDkwds 
)
static

Definition at line 5886 of file bpy_rna.c.

References NULL, BPy_PropertyRNA::prop, BPy_PropertyRNA::ptr, pyrna_prop_Type, ret, and type.

◆ pyrna_prop_path_from_id()

static PyObject* pyrna_prop_path_from_id ( BPy_PropertyRNA self)
static

◆ pyrna_prop_repr()

static PyObject* pyrna_prop_repr ( BPy_PropertyRNA self)
static

Definition at line 1115 of file bpy_rna.c.

References pyrna_prop_repr_ex().

◆ pyrna_prop_repr_ex()

static PyObject* pyrna_prop_repr_ex ( BPy_PropertyRNA self,
const int  index_dim,
const int  index 
)
static

◆ pyrna_prop_richcmp()

static PyObject* pyrna_prop_richcmp ( PyObject *  a,
PyObject *  b,
int  op 
)
static

◆ pyrna_prop_str()

static PyObject* pyrna_prop_str ( BPy_PropertyRNA self)
static

◆ pyrna_prop_to_enum_bitfield()

static int pyrna_prop_to_enum_bitfield ( PointerRNA ptr,
PropertyRNA prop,
PyObject *  value,
int *  r_value,
const char *  error_prefix 
)
static

◆ pyrna_prop_to_py()

PyObject* pyrna_prop_to_py ( PointerRNA ptr,
PropertyRNA prop 
)

◆ pyrna_prop_update()

static PyObject* pyrna_prop_update ( BPy_PropertyRNA self)
static

Definition at line 4016 of file bpy_rna.c.

References BPY_context_get(), RNA_property_update(), and self.

◆ pyrna_prop_validity_check()

int pyrna_prop_validity_check ( BPy_PropertyRNA self)

Definition at line 121 of file bpy_rna.c.

References RNA_property_identifier(), and self.

◆ pyrna_py_to_prop()

static int pyrna_py_to_prop ( PointerRNA ptr,
PropertyRNA prop,
void *  data,
PyObject *  value,
const char *  error_prefix 
)
static

Definition at line 1702 of file bpy_rna.c.

References BKE_reports_init(), BLI_addtail(), BLI_assert, BLI_strncpy(), BPY_context_get(), bpy_intern_str_properties, BPy_reports_to_error(), BPy_StructRNA_Check, data, PointerRNA::data, ELEM, err, LIB_TAG_TEMP_MAIN, MEM_callocN, NULL, PointerRNA::owner_id, PARM_OUTPUT, PARM_RNAPTR, PointerRNA_NULL, BPy_PropertyRNA::prop, PROP_BOOLEAN, PROP_BYTESTRING, PROP_COLLECTION, PROP_DIRPATH, PROP_ENUM, PROP_ENUM_FLAG, PROP_FILENAME, PROP_FILEPATH, PROP_FLOAT, PROP_ID_SELF_CHECK, PROP_INT, PROP_NEVER_NULL, PROP_POINTER, PROP_STRING, PROP_THICK_WRAP, CollectionPointerLink::ptr, BPy_StructRNA::ptr, BPy_PropertyRNA::ptr, ptr, PyC_Err_Format_Prefix(), PyC_ExceptionBuffer(), PyC_UnicodeAsByte(), pyrna_prop_collection_Type, pyrna_prop_to_enum_bitfield(), pyrna_py_to_array(), pyrna_pydict_to_props(), pyrna_string_to_enum(), pyrna_struct_CreatePyObject(), pyrna_struct_validity_check(), RNA_AnyType, RNA_Function, RNA_Gizmo, RNA_GizmoProperties, RNA_Operator, RNA_OperatorProperties, RNA_parameter_flag(), RNA_pointer_create(), RNA_property_array_check(), RNA_property_boolean_set(), RNA_property_collection_add(), RNA_property_collection_type_get(), RNA_property_enum_set(), RNA_property_flag(), RNA_property_float_clamp(), RNA_property_float_set(), RNA_property_identifier(), RNA_property_int_clamp(), RNA_property_int_set(), RNA_property_pointer_get(), RNA_property_pointer_set(), RNA_property_pointer_type(), RNA_property_string_maxlength(), RNA_property_string_set(), RNA_property_string_set_bytes(), RNA_property_subtype(), RNA_property_type(), RNA_property_update(), RNA_property_update_check(), RNA_struct_base_child_of(), RNA_struct_identifier(), RNA_struct_is_a(), RPT_STORE, STRINGIFY, ID::tag, type, PointerRNA::type, and UNLIKELY.

Referenced by bpy_class_call(), bpy_class_validate_recursive(), pyrna_func_call(), pyrna_prop_collection_setattro(), pyrna_pydict_to_props(), and pyrna_struct_setattro().

◆ pyrna_py_to_prop_array_index()

static int pyrna_py_to_prop_array_index ( BPy_PropertyArrayRNA self,
int  index,
PyObject *  value 
)
static

◆ pyrna_pydict_to_props()

int pyrna_pydict_to_props ( PointerRNA ptr,
PyObject *  kw,
const bool  all_args,
const char *  error_prefix 
)

This function is used by operators and converting dicts into collections. It takes keyword args and fills them with property values.

Definition at line 1622 of file bpy_rna.c.

References NULL, pos, ptr, pyrna_py_to_prop(), RNA_property_identifier(), RNA_STRUCT_BEGIN, RNA_STRUCT_END, RNA_struct_find_property(), and STREQ.

Referenced by pyop_as_string(), pyop_call(), and pyrna_py_to_prop().

◆ pyrna_register_class() [1/2]

static PyObject* pyrna_register_class ( PyObject *  self,
PyObject *  py_class 
)
static

◆ pyrna_register_class() [2/2]

static PyObject* pyrna_register_class ( PyObject *  UNUSEDself,
PyObject *  py_class 
)
static

◆ pyrna_rotation_euler_order_get()

static short pyrna_rotation_euler_order_get ( PointerRNA ptr,
const short  order_fallback,
PropertyRNA **  r_prop_eul_order 
)
static

◆ pyrna_set_to_enum_bitfield()

int pyrna_set_to_enum_bitfield ( const EnumPropertyItem items,
PyObject *  value,
int *  r_value,
const char *  error_prefix 
)

◆ pyrna_set_to_enum_bitmap()

BLI_bitmap* pyrna_set_to_enum_bitmap ( const EnumPropertyItem items,
PyObject *  value,
int  type_size,
bool  type_convert_sign,
int  bitmap_size,
const char *  error_prefix 
)

Takes a set of strings and map it to and array of booleans.

Useful when the values aren't flags.

Parameters
type_convert_signMaps signed to unsigned range, needed when we want to use the full range of a signed short/char.

Definition at line 1299 of file bpy_rna.c.

References BLI_assert, BLI_assert_unreachable, BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, error(), hash, MEM_freeN, NULL, pos, pyrna_enum_value_from_id(), and ret.

Referenced by bpy_user_map().

◆ pyrna_srna_contains_pointer_prop_srna()

static int pyrna_srna_contains_pointer_prop_srna ( StructRNA srna_props,
StructRNA srna,
const char **  r_prop_identifier 
)
static

◆ pyrna_srna_ExternalType()

static PyObject* pyrna_srna_ExternalType ( StructRNA srna)
static

◆ pyrna_srna_PyBase()

static PyObject* pyrna_srna_PyBase ( StructRNA srna)
static

◆ pyrna_srna_Subtype()

static PyObject * pyrna_srna_Subtype ( StructRNA srna)
static

◆ pyrna_string_to_enum()

static int pyrna_string_to_enum ( PyObject *  item,
PointerRNA ptr,
PropertyRNA prop,
int *  r_value,
const char *  error_prefix 
)
static

Definition at line 1264 of file bpy_rna.c.

References BPY_context_get(), MEM_freeN, NULL, ptr, pyrna_enum_as_string(), and RNA_property_enum_value().

Referenced by pyrna_py_to_prop().

◆ pyrna_struct_as_pointer()

static PyObject* pyrna_struct_as_pointer ( BPy_StructRNA self)
static

Definition at line 5041 of file bpy_rna.c.

References self.

◆ pyrna_struct_as_srna()

StructRNA* pyrna_struct_as_srna ( PyObject *  self,
const bool  parent,
const char *  error_prefix 
)

◆ pyrna_struct_ass_subscript()

static int pyrna_struct_ass_subscript ( BPy_StructRNA self,
PyObject *  key,
PyObject *  value 
)
static

◆ pyrna_struct_bl_rna_find_subclass_recursive()

static PyObject* pyrna_struct_bl_rna_find_subclass_recursive ( PyObject *  cls,
const char *  id 
)
static
Note
Return value is borrowed, caller must #Py_INCREF.

Definition at line 4043 of file bpy_rna.c.

References BLI_assert, bpy_intern_str_bl_rna, PointerRNA::data, NULL, pos, BPy_StructRNA::ptr, RNA_struct_identifier(), and STREQ.

Referenced by pyrna_struct_bl_rna_get_subclass_py().

◆ pyrna_struct_bl_rna_get_subclass()

static PyObject* pyrna_struct_bl_rna_get_subclass ( PyObject *  cls,
PyObject *  args 
)
static

◆ pyrna_struct_bl_rna_get_subclass_py()

static PyObject* pyrna_struct_bl_rna_get_subclass_py ( PyObject *  cls,
PyObject *  args 
)
static

Definition at line 4084 of file bpy_rna.c.

References id, NULL, pyrna_struct_bl_rna_find_subclass_recursive(), and ret.

◆ pyrna_struct_compare()

static int pyrna_struct_compare ( BPy_StructRNA a,
BPy_StructRNA b 
)
static

Definition at line 831 of file bpy_rna.c.

References Freestyle::a, PointerRNA::data, BPy_StructRNA::ptr, and PointerRNA::type.

Referenced by pyrna_struct_richcmp().

◆ pyrna_struct_contains()

static int pyrna_struct_contains ( BPy_StructRNA self,
PyObject *  value 
)
static

◆ pyrna_struct_CreatePyObject()

PyObject* pyrna_struct_CreatePyObject ( PointerRNA ptr)

◆ pyrna_struct_dealloc()

static void pyrna_struct_dealloc ( BPy_StructRNA self)
static

Definition at line 1177 of file bpy_rna.c.

References IDP_FreeProperty(), NULL, and self.

◆ pyrna_struct_dir()

static PyObject* pyrna_struct_dir ( BPy_StructRNA self)
static

◆ pyrna_struct_get()

static PyObject* pyrna_struct_get ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_get_data()

static PyObject* pyrna_struct_get_data ( BPy_DummyPointerRNA self)
static

Definition at line 4799 of file bpy_rna.c.

References pyrna_struct_CreatePyObject(), and self.

◆ pyrna_struct_get_id_data()

static PyObject* pyrna_struct_get_id_data ( BPy_DummyPointerRNA self)
static

Definition at line 4785 of file bpy_rna.c.

References pyrna_struct_CreatePyObject(), RNA_id_pointer_create(), and self.

◆ pyrna_struct_get_rna_type()

static PyObject* pyrna_struct_get_rna_type ( BPy_PropertyRNA self)
static

Definition at line 4805 of file bpy_rna.c.

References NULL, pyrna_struct_Subtype(), RNA_pointer_create(), RNA_Property, and self.

◆ pyrna_struct_getattro()

static PyObject* pyrna_struct_getattro ( BPy_StructRNA self,
PyObject *  pyname 
)
static

◆ pyrna_struct_hash()

static Py_hash_t pyrna_struct_hash ( BPy_StructRNA self)
static

Definition at line 1133 of file bpy_rna.c.

References self.

◆ pyrna_struct_is_property_hidden()

static PyObject* pyrna_struct_is_property_hidden ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_is_property_overridable_library()

static PyObject* pyrna_struct_is_property_overridable_library ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_is_property_readonly()

static PyObject* pyrna_struct_is_property_readonly ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_is_property_set()

static PyObject* pyrna_struct_is_property_set ( BPy_StructRNA self,
PyObject *  args,
PyObject *  kw 
)
static

◆ pyrna_struct_items()

static PyObject* pyrna_struct_items ( BPy_PropertyRNA self)
static

◆ pyrna_struct_keys()

static PyObject* pyrna_struct_keys ( BPy_PropertyRNA self)
static

◆ pyrna_struct_meta_idprop_setattro()

static int pyrna_struct_meta_idprop_setattro ( PyObject *  cls,
PyObject *  attr,
PyObject *  value 
)
static

◆ pyrna_struct_new()

static PyObject* pyrna_struct_new ( PyTypeObject *  type,
PyObject *  args,
PyObject *  UNUSEDkwds 
)
static

Definition at line 5838 of file bpy_rna.c.

References NULL, BPy_StructRNA::ptr, pyrna_struct_Type, ret, and type.

◆ pyrna_struct_path_from_id()

static PyObject* pyrna_struct_path_from_id ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_path_resolve()

static PyObject* pyrna_struct_path_resolve ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_pop()

static PyObject* pyrna_struct_pop ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_property_overridable_library_set()

static PyObject* pyrna_struct_property_overridable_library_set ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_property_unset()

static PyObject* pyrna_struct_property_unset ( BPy_StructRNA self,
PyObject *  args 
)
static

◆ pyrna_struct_repr()

static PyObject* pyrna_struct_repr ( BPy_StructRNA self)
static

◆ pyrna_struct_richcmp()

static PyObject* pyrna_struct_richcmp ( PyObject *  a,
PyObject *  b,
int  op 
)
static

◆ pyrna_struct_setattro()

static int pyrna_struct_setattro ( BPy_StructRNA self,
PyObject *  pyname,
PyObject *  value 
)
static

◆ pyrna_struct_str()

static PyObject* pyrna_struct_str ( BPy_StructRNA self)
static

◆ pyrna_struct_subscript()

static PyObject* pyrna_struct_subscript ( BPy_StructRNA self,
PyObject *  key 
)
static

◆ pyrna_struct_Subtype()

static PyObject * pyrna_struct_Subtype ( PointerRNA ptr)
static

◆ pyrna_struct_type_extend_capi()

void pyrna_struct_type_extend_capi ( struct StructRNA srna,
struct PyMethodDef *  method,
struct PyGetSetDef *  getset 
)

Extend RNA types with C/API methods, properties.

Definition at line 9121 of file bpy_rna.c.

References BLI_assert, err, NULL, pyrna_srna_Subtype(), type, and UNUSED_VARS_NDEBUG.

Referenced by BPY_rna_types_extend_capi().

◆ pyrna_struct_type_recast()

static PyObject* pyrna_struct_type_recast ( BPy_StructRNA self)
static

◆ pyrna_struct_validity_check()

int pyrna_struct_validity_check ( BPy_StructRNA pysrna)

Definition at line 111 of file bpy_rna.c.

References BPy_StructRNA::ptr, and PointerRNA::type.

Referenced by pyrna_py_to_prop().

◆ pyrna_struct_values()

static PyObject* pyrna_struct_values ( BPy_PropertyRNA self)
static

◆ pyrna_subtype_set_rna()

static void pyrna_subtype_set_rna ( PyObject *  newclass,
StructRNA srna 
)
static

◆ pyrna_unregister_class() [1/2]

static PyObject* pyrna_unregister_class ( PyObject *  self,
PyObject *  py_class 
)
static

◆ pyrna_unregister_class() [2/2]

static PyObject* pyrna_unregister_class ( PyObject *  UNUSEDself,
PyObject *  py_class 
)
static

◆ pyrna_write_check()

bool pyrna_write_check ( void  )

◆ pyrna_write_set()

void pyrna_write_set ( bool  val)

◆ rna_function_arg_count()

static int rna_function_arg_count ( FunctionRNA func,
int *  min_count 
)
static

◆ rna_id_write_error()

static bool rna_id_write_error ( PointerRNA ptr,
PyObject *  key 
)
static

◆ small_dict_get_item_string()

static PyObject* small_dict_get_item_string ( PyObject *  dict,
const char *  key_lookup 
)
static

Use to replace PyDict_GetItemString() when the overhead of converting a string into a Python unicode is higher than a non hash lookup. works on small dict's such as keyword args.

Definition at line 6088 of file bpy_rna.c.

References NULL, pos, and STREQ.

Referenced by pyrna_func_call().

◆ srna_from_ptr()

static StructRNA* srna_from_ptr ( PointerRNA ptr)
static

Definition at line 7453 of file bpy_rna.c.

References PointerRNA::data, ptr, RNA_Struct, and PointerRNA::type.

Referenced by pyrna_free_types(), and pyrna_struct_Subtype().

◆ srna_from_self()

StructRNA* srna_from_self ( PyObject *  self,
const char *  error_prefix 
)

Variable Documentation

◆ bpy_context_module

BPy_StructRNA* bpy_context_module = NULL

◆ bpy_types_dict

PyObject* bpy_types_dict = NULL
static

Definition at line 7292 of file bpy_rna.c.

Referenced by pyrna_srna_ExternalType().

◆ bpy_types_module_def

struct PyModuleDef bpy_types_module_def
static
Initial value:
= {
PyModuleDef_HEAD_INIT,
"bpy.types",
bpy_types_module_doc,
sizeof(struct BPy_TypesModule_State),
NULL,
NULL,
NULL,
NULL,
}
static struct PyMethodDef bpy_types_module_methods[]
Definition: bpy_rna.c:7797

Definition at line 7803 of file bpy_rna.c.

Referenced by BPY_rna_types().

◆ bpy_types_module_methods

struct PyMethodDef bpy_types_module_methods[]
static
Initial value:
= {
{"__getattr__", (PyCFunction)bpy_types_module_getattro, METH_O, NULL},
{"__dir__", (PyCFunction)bpy_types_module_dir, METH_NOARGS, NULL},
{NULL, NULL, 0, NULL},
}
static PyObject * bpy_types_module_dir(PyObject *self)
Definition: bpy_rna.c:7776
static PyObject * bpy_types_module_getattro(PyObject *self, PyObject *pyname)
Definition: bpy_rna.c:7743

Definition at line 7776 of file bpy_rna.c.

◆ mathutils_rna_array_cb

Mathutils_Callback mathutils_rna_array_cb
static
Initial value:
= {
}
static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype)
Definition: bpy_rna.c:441
static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int UNUSED(subtype), int index)
Definition: bpy_rna.c:495
static int mathutils_rna_generic_check(BaseMathObject *bmo)
Definition: bpy_rna.c:410
static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype)
Definition: bpy_rna.c:419
static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtype), int index)
Definition: bpy_rna.c:509
int(* BaseMathGetFunc)(BaseMathObject *, int)
Definition: mathutils.h:101
int(* BaseMathGetIndexFunc)(BaseMathObject *, int, int)
Definition: mathutils.h:105
int(* BaseMathSetIndexFunc)(BaseMathObject *, int, int)
Definition: mathutils.h:107
int(* BaseMathSetFunc)(BaseMathObject *, int)
Definition: mathutils.h:103
int(* BaseMathCheckFunc)(BaseMathObject *)
Definition: mathutils.h:99

Definition at line 543 of file bpy_rna.c.

Referenced by BPY_rna_init().

◆ mathutils_rna_array_cb_index

uchar mathutils_rna_array_cb_index = -1
static

Definition at line 402 of file bpy_rna.c.

Referenced by BPY_rna_init(), and pyrna_math_object_from_array().

◆ mathutils_rna_matrix_cb

Mathutils_Callback mathutils_rna_matrix_cb
static
Initial value:
= {
}
static int mathutils_rna_matrix_get(BaseMathObject *bmo, int UNUSED(subtype))
Definition: bpy_rna.c:554
static int mathutils_rna_matrix_set(BaseMathObject *bmo, int UNUSED(subtype))
Definition: bpy_rna.c:568

Definition at line 601 of file bpy_rna.c.

Referenced by BPY_rna_init().

◆ mathutils_rna_matrix_cb_index

uchar mathutils_rna_matrix_cb_index = -1
static

Definition at line 552 of file bpy_rna.c.

Referenced by BPY_rna_init(), and pyrna_math_object_from_array().

◆ meth_bpy_owner_id_get

PyMethodDef meth_bpy_owner_id_get
Initial value:
= {
"_bl_owner_id_get",
(PyCFunction)pyrna_bl_owner_id_get,
METH_NOARGS,
}
static PyObject * pyrna_bl_owner_id_get(PyObject *UNUSED(self))
Definition: bpy_rna.c:9165

Definition at line 9194 of file bpy_rna.c.

Referenced by BPy_init_modules().

◆ meth_bpy_owner_id_set

PyMethodDef meth_bpy_owner_id_set
Initial value:
= {
"_bl_owner_id_set",
(PyCFunction)pyrna_bl_owner_id_set,
METH_O,
}
static PyObject * pyrna_bl_owner_id_set(PyObject *UNUSED(self), PyObject *value)
Definition: bpy_rna.c:9174

Definition at line 9200 of file bpy_rna.c.

Referenced by BPy_init_modules().

◆ meth_bpy_register_class

PyMethodDef meth_bpy_register_class
Initial value:
= {
"register_class", pyrna_register_class, METH_O, pyrna_register_class_doc}
static PyObject * pyrna_register_class(PyObject *self, PyObject *py_class)

Definition at line 8827 of file bpy_rna.c.

Referenced by BPy_init_modules().

◆ meth_bpy_unregister_class

PyMethodDef meth_bpy_unregister_class
Initial value:
= {
"unregister_class",
METH_O,
pyrna_unregister_class_doc,
}
static PyObject * pyrna_unregister_class(PyObject *self, PyObject *py_class)

Definition at line 9001 of file bpy_rna.c.

Referenced by BPy_init_modules().

◆ pyrna_func_getseters

PyGetSetDef pyrna_func_getseters[]
static
Initial value:
= {
{"__doc__", (getter)pyrna_func_doc_get, (setter)NULL, NULL, NULL},
}
static PyObject * pyrna_func_doc_get(BPy_FunctionRNA *self, void *closure)

Definition at line 4842 of file bpy_rna.c.

◆ pyrna_func_Type

PyTypeObject pyrna_func_Type

Definition at line 6972 of file bpy_rna.c.

Referenced by BPY_rna_init(), BPY_rna_types(), and pyrna_func_to_py().

◆ pyrna_prop_array_as_mapping

PyMappingMethods pyrna_prop_array_as_mapping
static
Initial value:
= {
}
static PyObject * pyrna_prop_array_subscript(BPy_PropertyArrayRNA *self, PyObject *key)
Definition: bpy_rna.c:2945
static Py_ssize_t pyrna_prop_array_length(BPy_PropertyArrayRNA *self)
Definition: bpy_rna.c:2337
static int pyrna_prop_array_ass_subscript(BPy_PropertyArrayRNA *self, PyObject *key, PyObject *value)
Definition: bpy_rna.c:3286

Definition at line 3346 of file bpy_rna.c.

◆ pyrna_prop_array_as_number

PyNumberMethods pyrna_prop_array_as_number
static
Initial value:
= {
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
static int pyrna_prop_array_bool(BPy_PropertyRNA *self)
Definition: bpy_rna.c:2357

Definition at line 3359 of file bpy_rna.c.

◆ pyrna_prop_array_as_sequence

PySequenceMethods pyrna_prop_array_as_sequence
static
Initial value:
= {
NULL,
NULL,
NULL,
(ssizeobjargproc)prop_subscript_ass_array_int,
NULL,
(binaryfunc)NULL,
(ssizeargfunc)NULL,
}
static int pyrna_prop_array_contains(BPy_PropertyRNA *self, PyObject *value)
Definition: bpy_rna.c:3384
static PyObject * pyrna_prop_array_subscript_int(BPy_PropertyArrayRNA *self, int keynum)
Definition: bpy_rna.c:2458
static int prop_subscript_ass_array_int(BPy_PropertyArrayRNA *self, Py_ssize_t keynum, PyObject *value)
Definition: bpy_rna.c:3264

Definition at line 3441 of file bpy_rna.c.

◆ pyrna_prop_array_methods

struct PyMethodDef pyrna_prop_array_methods[]
static
Initial value:
= {
{"foreach_get",
METH_VARARGS,
pyrna_prop_array_foreach_get_doc},
{"foreach_set",
METH_VARARGS,
pyrna_prop_array_foreach_set_doc},
{NULL, NULL, 0, NULL},
}
static PyObject * pyrna_prop_array_foreach_get(BPy_PropertyArrayRNA *self, PyObject *args)
Definition: bpy_rna.c:5625
static PyObject * pyrna_prop_array_foreach_set(BPy_PropertyArrayRNA *self, PyObject *args)
Definition: bpy_rna.c:5636

Definition at line 5667 of file bpy_rna.c.

◆ pyrna_prop_array_Type

PyTypeObject pyrna_prop_array_Type

Definition at line 6717 of file bpy_rna.c.

Referenced by BPY_rna_init(), BPY_rna_types(), and pyrna_prop_CreatePyObject().

◆ pyrna_prop_collection_as_mapping

PyMappingMethods pyrna_prop_collection_as_mapping
static
Initial value:
= {
}
static Py_ssize_t pyrna_prop_collection_length(BPy_PropertyRNA *self)
Definition: bpy_rna.c:2348
static int pyrna_prop_collection_ass_subscript(BPy_PropertyRNA *self, PyObject *key, PyObject *value)
Definition: bpy_rna.c:2860
static PyObject * pyrna_prop_collection_subscript(BPy_PropertyRNA *self, PyObject *key)
Definition: bpy_rna.c:2743

Definition at line 3352 of file bpy_rna.c.

◆ pyrna_prop_collection_as_number

PyNumberMethods pyrna_prop_collection_as_number
static
Initial value:
= {
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
}
static int pyrna_prop_collection_bool(BPy_PropertyRNA *self)
Definition: bpy_rna.c:2364

Definition at line 3371 of file bpy_rna.c.

◆ pyrna_prop_collection_as_sequence

PySequenceMethods pyrna_prop_collection_as_sequence
static
Initial value:
= {
NULL,
NULL,
NULL,
(ssizeobjargproc)
NULL ,
NULL,
(binaryfunc)NULL,
(ssizeargfunc)NULL,
}
static PyObject * pyrna_prop_collection_subscript_int(BPy_PropertyRNA *self, Py_ssize_t keynum)
Definition: bpy_rna.c:2392
static int pyrna_prop_collection_contains(BPy_PropertyRNA *self, PyObject *key)
Definition: bpy_rna.c:3389

Definition at line 3455 of file bpy_rna.c.

◆ pyrna_prop_collection_idprop_methods

struct PyMethodDef pyrna_prop_collection_idprop_methods[]
static
Initial value:
= {
{"add", (PyCFunction)pyrna_prop_collection_idprop_add, METH_NOARGS, NULL},
{"remove", (PyCFunction)pyrna_prop_collection_idprop_remove, METH_O, NULL},
{"clear", (PyCFunction)pyrna_prop_collection_idprop_clear, METH_NOARGS, NULL},
{"move", (PyCFunction)pyrna_prop_collection_idprop_move, METH_VARARGS, NULL},
{NULL, NULL, 0, NULL},
}
static PyObject * pyrna_prop_collection_idprop_remove(BPy_PropertyRNA *self, PyObject *value)
Definition: bpy_rna.c:4721
static PyObject * pyrna_prop_collection_idprop_move(BPy_PropertyRNA *self, PyObject *args)
Definition: bpy_rna.c:4758
static PyObject * pyrna_prop_collection_idprop_add(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4701
static PyObject * pyrna_prop_collection_idprop_clear(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4745

Definition at line 5667 of file bpy_rna.c.

◆ pyrna_prop_collection_idprop_Type

PyTypeObject pyrna_prop_collection_idprop_Type
static

Definition at line 6886 of file bpy_rna.c.

Referenced by BPY_rna_init(), and pyrna_prop_CreatePyObject().

◆ pyrna_prop_collection_iter_Type

PyTypeObject pyrna_prop_collection_iter_Type
static

Definition at line 7068 of file bpy_rna.c.

Referenced by BPY_rna_init(), and pyrna_prop_collection_iter_CreatePyObject().

◆ pyrna_prop_collection_methods

struct PyMethodDef pyrna_prop_collection_methods[]
static
Initial value:
= {
{"foreach_get",
METH_VARARGS,
pyrna_prop_collection_foreach_get_doc},
{"foreach_set",
METH_VARARGS,
pyrna_prop_collection_foreach_set_doc},
{"keys", (PyCFunction)pyrna_prop_collection_keys, METH_NOARGS, pyrna_prop_collection_keys_doc},
{"items",
METH_NOARGS,
pyrna_prop_collection_items_doc},
{"values",
METH_NOARGS,
pyrna_prop_collection_values_doc},
{"get", (PyCFunction)pyrna_prop_collection_get, METH_VARARGS, pyrna_prop_collection_get_doc},
{"find", (PyCFunction)pyrna_prop_collection_find, METH_O, pyrna_prop_collection_find_doc},
{NULL, NULL, 0, NULL},
}
static PyObject * pyrna_prop_collection_foreach_get(BPy_PropertyRNA *self, PyObject *args)
Definition: bpy_rna.c:5457
static PyObject * pyrna_prop_collection_get(BPy_PropertyRNA *self, PyObject *args)
Definition: bpy_rna.c:5057
static PyObject * pyrna_prop_collection_values(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4928
static PyObject * pyrna_prop_collection_find(BPy_PropertyRNA *self, PyObject *key_ob)
Definition: bpy_rna.c:5103
static PyObject * pyrna_prop_collection_keys(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4855
static PyObject * pyrna_prop_collection_foreach_set(BPy_PropertyRNA *self, PyObject *args)
Definition: bpy_rna.c:5468
static PyObject * pyrna_prop_collection_items(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4885

Definition at line 5667 of file bpy_rna.c.

◆ pyrna_prop_collection_Type

PyTypeObject pyrna_prop_collection_Type

◆ pyrna_prop_getseters

PyGetSetDef pyrna_prop_getseters[]
static
Initial value:
= {
{"id_data",
(setter)NULL,
pyrna_struct_get_id_data_doc,
NULL},
{"data", (getter)pyrna_struct_get_data, (setter)NULL, pyrna_struct_get_data_doc, NULL},
{"rna_type",
(setter)NULL,
pyrna_struct_get_rna_type_doc,
NULL},
}
static PyObject * pyrna_struct_get_rna_type(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4805
static PyObject * pyrna_struct_get_id_data(BPy_DummyPointerRNA *self)
Definition: bpy_rna.c:4785
static PyObject * pyrna_struct_get_data(BPy_DummyPointerRNA *self)
Definition: bpy_rna.c:4799

Definition at line 4816 of file bpy_rna.c.

◆ pyrna_prop_methods

struct PyMethodDef pyrna_prop_methods[]
static
Initial value:
= {
{"path_from_id",
METH_NOARGS,
pyrna_prop_path_from_id_doc},
{"as_bytes", (PyCFunction)pyrna_prop_as_bytes, METH_NOARGS, pyrna_prop_as_bytes_doc},
{"update", (PyCFunction)pyrna_prop_update, METH_NOARGS, pyrna_prop_update_doc},
{"__dir__", (PyCFunction)pyrna_prop_dir, METH_NOARGS, NULL},
{NULL, NULL, 0, NULL},
}
static PyObject * pyrna_prop_update(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4016
static PyObject * pyrna_prop_dir(BPy_PropertyRNA *self)
Definition: bpy_rna.c:4560
static PyObject * pyrna_prop_path_from_id(BPy_PropertyRNA *self)
Definition: bpy_rna.c:3952
static PyObject * pyrna_prop_as_bytes(BPy_PropertyRNA *self)
Definition: bpy_rna.c:3981

Definition at line 5667 of file bpy_rna.c.

◆ pyrna_prop_Type

PyTypeObject pyrna_prop_Type

Definition at line 6633 of file bpy_rna.c.

Referenced by BPY_rna_init(), BPY_rna_types(), pyrna_prop_CreatePyObject(), and pyrna_prop_new().

◆ pyrna_struct_as_mapping

PyMappingMethods pyrna_struct_as_mapping
static
Initial value:
= {
(lenfunc)NULL,
(binaryfunc)pyrna_struct_subscript,
(objobjargproc)pyrna_struct_ass_subscript,
}
static int pyrna_struct_ass_subscript(BPy_StructRNA *self, PyObject *key, PyObject *value)
Definition: bpy_rna.c:3520
static PyObject * pyrna_struct_subscript(BPy_StructRNA *self, PyObject *key)
Definition: bpy_rna.c:3484

Definition at line 3556 of file bpy_rna.c.

◆ pyrna_struct_as_sequence

PySequenceMethods pyrna_struct_as_sequence
static
Initial value:
= {
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
(objobjproc)pyrna_struct_contains,
(binaryfunc)NULL,
(ssizeargfunc)NULL,
}
static int pyrna_struct_contains(BPy_StructRNA *self, PyObject *value)
Definition: bpy_rna.c:3415

Definition at line 3470 of file bpy_rna.c.

◆ pyrna_struct_getseters

PyGetSetDef pyrna_struct_getseters[]
static
Initial value:
= {
{"id_data",
(setter)NULL,
pyrna_struct_get_id_data_doc,
NULL},
}

Definition at line 4831 of file bpy_rna.c.

◆ pyrna_struct_meta_idprop_Type

PyTypeObject pyrna_struct_meta_idprop_Type

Definition at line 6456 of file bpy_rna.c.

Referenced by BPY_rna_init(), BPY_rna_types(), and pyrna_srna_Subtype().

◆ pyrna_struct_methods

struct PyMethodDef pyrna_struct_methods[]
static

Definition at line 5667 of file bpy_rna.c.

◆ pyrna_struct_Type

PyTypeObject pyrna_struct_Type

◆ rna_disallow_writes

bool rna_disallow_writes = false
static

◆ rna_module_ptr

PointerRNA* rna_module_ptr = NULL
static

Definition at line 7687 of file bpy_rna.c.

Referenced by BPY_rna_module(), and BPY_update_rna_module().