Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-09-13 11:16:06 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-09-13 11:16:06 +0300
commita6fc7180297f855c2592b20b26f96eb8e5a9e0ca (patch)
treeca62e3e1c301e42814a76f522975855bc1d6ceea /release
parent9900addf11d9a5b964aa745cf141998195f7c8db (diff)
PyAPI: add API call to get an operators type
Getting the instance leaks memory and was only meant to be used for generating docs.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/modules/bpy/ops.py5
-rw-r--r--release/scripts/modules/rna_info.py4
-rw-r--r--release/scripts/startup/bl_operators/presets.py2
-rw-r--r--release/scripts/startup/bl_operators/wm.py4
4 files changed, 10 insertions, 5 deletions
diff --git a/release/scripts/modules/bpy/ops.py b/release/scripts/modules/bpy/ops.py
index 7c5c76ffdbe..028cce063ac 100644
--- a/release/scripts/modules/bpy/ops.py
+++ b/release/scripts/modules/bpy/ops.py
@@ -27,6 +27,7 @@ op_poll = ops_module.poll
op_call = ops_module.call
op_as_string = ops_module.as_string
op_get_rna = ops_module.get_rna
+op_get_rna_type = ops_module.get_rna_type
op_get_instance = ops_module.get_instance
@@ -193,6 +194,10 @@ class BPyOpsSubModOp:
return ret
+ def get_rna_type(self):
+ """Internal function for introspection"""
+ return op_get_rna_type(self.idname())
+
def get_rna(self):
"""Internal function for introspection"""
return op_get_rna(self.idname())
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py
index 53d2e2d0151..535f2cda626 100644
--- a/release/scripts/modules/rna_info.py
+++ b/release/scripts/modules/rna_info.py
@@ -731,14 +731,14 @@ def BuildRNAInfo():
operators = dir(op_mod)
for op in sorted(operators):
try:
- rna_prop = getattr(op_mod, op).get_rna()
+ rna_prop = getattr(op_mod, op).get_rna_type()
except AttributeError:
rna_prop = None
except TypeError:
rna_prop = None
if rna_prop:
- GetInfoOperatorRNA(rna_prop.bl_rna)
+ GetInfoOperatorRNA(rna_prop)
for rna_info in InfoOperatorRNA.global_lookup.values():
rna_info.build()
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index 8852bca971d..f5a77e2f306 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -628,7 +628,7 @@ class AddPresetOperator(AddPresetBase, Operator):
prefix, suffix = self.operator.split("_OT_", 1)
op = getattr(getattr(bpy.ops, prefix.lower()), suffix)
- operator_rna = op.get_rna().bl_rna
+ operator_rna = op.get_rna_type()
del op
ret = []
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 64a68e41e13..381e98c2940 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -612,7 +612,7 @@ class WM_OT_operator_pie_enum(Operator):
del op_mod_str, ob_id_str
try:
- op_rna = op.get_rna()
+ op_rna = op.get_rna_type()
except KeyError:
self.report({'ERROR'}, "Operator not found: bpy.ops.%s" % data_path)
return {'CANCELLED'}
@@ -622,7 +622,7 @@ class WM_OT_operator_pie_enum(Operator):
pie = layout.menu_pie()
pie.operator_enum(data_path, prop_string)
- wm.popup_menu_pie(draw_func=draw_cb, title=op_rna.bl_rna.name, event=event)
+ wm.popup_menu_pie(draw_func=draw_cb, title=op_rna.name, event=event)
return {'FINISHED'}