[Bf-blender-cvs] [09aa799e533] blender2.8: PyAPI: Use annotations for RNA definitions
Campbell Barton
noreply at git.blender.org
Wed Jul 11 22:18:48 CEST 2018
Commit: 09aa799e5331a9da666f8a6325b038a866b1f35d
Author: Campbell Barton
Date: Wed Jul 11 22:18:09 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB09aa799e5331a9da666f8a6325b038a866b1f35d
PyAPI: Use annotations for RNA definitions
- Logical use of fields since they define type information.
- Avoids using ordered-dict metaclass.
Properties using regular assignments will print a warning and load,
however the order is undefined.
===================================================================
M intern/cycles/blender/addon/properties.py
M release/scripts/modules/bpy_extras/io_utils.py
M release/scripts/modules/bpy_extras/keyconfig_utils.py
M release/scripts/modules/bpy_extras/object_utils.py
M release/scripts/modules/bpy_types.py
M release/scripts/startup/bl_operators/add_mesh_torus.py
M release/scripts/startup/bl_operators/anim.py
M release/scripts/startup/bl_operators/clip.py
M release/scripts/startup/bl_operators/console.py
M release/scripts/startup/bl_operators/file.py
M release/scripts/startup/bl_operators/freestyle.py
M release/scripts/startup/bl_operators/image.py
M release/scripts/startup/bl_operators/mesh.py
M release/scripts/startup/bl_operators/node.py
M release/scripts/startup/bl_operators/object.py
M release/scripts/startup/bl_operators/object_align.py
M release/scripts/startup/bl_operators/object_quick_effects.py
M release/scripts/startup/bl_operators/object_randomize_transform.py
M release/scripts/startup/bl_operators/presets.py
M release/scripts/startup/bl_operators/rigidbody.py
M release/scripts/startup/bl_operators/sequencer.py
M release/scripts/startup/bl_operators/uvcalc_follow_active.py
M release/scripts/startup/bl_operators/uvcalc_lightmap.py
M release/scripts/startup/bl_operators/uvcalc_smart_project.py
M release/scripts/startup/bl_operators/vertexpaint_dirt.py
M release/scripts/startup/bl_operators/view3d.py
M release/scripts/startup/bl_operators/wm.py
M release/scripts/templates_py/addon_add_object.py
M release/scripts/templates_py/custom_nodes.py
M release/scripts/templates_py/manipulator_operator.py
M release/scripts/templates_py/operator_file_export.py
M release/scripts/templates_py/operator_file_import.py
M release/scripts/templates_py/operator_mesh_add.py
M release/scripts/templates_py/operator_modal.py
M release/scripts/templates_py/operator_modal_view3d.py
M release/scripts/templates_py/ui_list.py
M source/blender/python/intern/bpy_intern_string.c
M source/blender/python/intern/bpy_intern_string.h
M source/blender/python/intern/bpy_rna.c
===================================================================
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 85947b4bd28..51e887d08ca 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -17,12 +17,14 @@
# <pep8 compliant>
import bpy
-from bpy.props import (BoolProperty,
- EnumProperty,
- FloatProperty,
- IntProperty,
- PointerProperty,
- StringProperty)
+from bpy.props import (
+ BoolProperty,
+ EnumProperty,
+ FloatProperty,
+ IntProperty,
+ PointerProperty,
+ StringProperty,
+)
# enums
@@ -1198,12 +1200,14 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup):
def unregister(cls):
del bpy.types.Scene.cycles_curves
+
def update_render_passes(self, context):
scene = context.scene
rd = scene.render
view_layer = context.view_layer
view_layer.update_render_passes()
+
class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
@classmethod
def register(cls):
@@ -1358,13 +1362,13 @@ class CyclesPreferences(bpy.types.AddonPreferences):
list.append(('OPENCL', "OpenCL", "Use OpenCL for GPU acceleration", 2))
return list
- compute_device_type = EnumProperty(
- name="Compute Device Type",
- description="Device to use for computation (rendering with Cycles)",
- items=get_device_types,
- )
+ compute_device_type: EnumProperty(
+ name="Compute Device Type",
+ description="Device to use for computation (rendering with Cycles)",
+ items=get_device_types,
+ )
- devices = bpy.props.CollectionProperty(type=CyclesDeviceSettings)
+ devices: bpy.props.CollectionProperty(type=CyclesDeviceSettings)
def find_existing_device_entry(self, device):
for device_entry in self.devices:
diff --git a/release/scripts/modules/bpy_extras/io_utils.py b/release/scripts/modules/bpy_extras/io_utils.py
index e2c2e4c9b93..a0c1c3e5c84 100644
--- a/release/scripts/modules/bpy_extras/io_utils.py
+++ b/release/scripts/modules/bpy_extras/io_utils.py
@@ -52,25 +52,19 @@ def _check_axis_conversion(op):
class ExportHelper:
- filepath = StringProperty(
+ filepath: StringProperty(
name="File Path",
description="Filepath used for exporting the file",
maxlen=1024,
subtype='FILE_PATH',
)
- check_existing = BoolProperty(
+ check_existing: BoolProperty(
name="Check Existing",
description="Check and warn on overwriting existing files",
default=True,
options={'HIDDEN'},
)
- # needed for mix-ins
- order = [
- "filepath",
- "check_existing",
- ]
-
# subclasses can override with decorator
# True == use ext, False == no ext, None == do nothing.
check_extension = True
@@ -112,18 +106,13 @@ class ExportHelper:
class ImportHelper:
- filepath = StringProperty(
+ filepath: StringProperty(
name="File Path",
description="Filepath used for importing the file",
maxlen=1024,
subtype='FILE_PATH',
)
- # needed for mix-ins
- order = [
- "filepath",
- ]
-
def invoke(self, context, event):
context.window_manager.fileselect_add(self)
return {'RUNNING_MODAL'}
@@ -173,11 +162,6 @@ def orientation_helper_factory(name, axis_forward='Y', axis_up='Z'):
update=_update_axis_up,
)
- members["order"] = [
- "axis_forward",
- "axis_up",
- ]
-
return type(name, (object,), members)
diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils.py b/release/scripts/modules/bpy_extras/keyconfig_utils.py
index a078da2ff2f..7e5e1fb855c 100644
--- a/release/scripts/modules/bpy_extras/keyconfig_utils.py
+++ b/release/scripts/modules/bpy_extras/keyconfig_utils.py
@@ -406,6 +406,7 @@ def keyconfig_test(kc):
result = True
return result
+
# Note, we may eventually replace existing logic with this
# so key configs are always data.
from .keyconfig_utils_experimental import (
diff --git a/release/scripts/modules/bpy_extras/object_utils.py b/release/scripts/modules/bpy_extras/object_utils.py
index fcecb4cdd61..7719e2f6e30 100644
--- a/release/scripts/modules/bpy_extras/object_utils.py
+++ b/release/scripts/modules/bpy_extras/object_utils.py
@@ -194,16 +194,16 @@ class AddObjectHelper:
if not self.view_align:
self.rotation.zero()
- view_align = BoolProperty(
+ view_align: BoolProperty(
name="Align to View",
default=False,
update=view_align_update_callback,
)
- location = FloatVectorProperty(
+ location: FloatVectorProperty(
name="Location",
subtype='TRANSLATION',
)
- rotation = FloatVectorProperty(
+ rotation: FloatVectorProperty(
name="Rotation",
subtype='EULER',
)
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index c4bf8422d3f..b317ae18955 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -568,39 +568,13 @@ class RNAMeta(type):
return "bl_rna" in cls.__dict__
-class OrderedDictMini(dict):
-
- def __init__(self, *args):
- self.order = []
- dict.__init__(self, args)
-
- def __setitem__(self, key, val):
- dict.__setitem__(self, key, val)
- if key not in self.order:
- self.order.append(key)
-
- def __delitem__(self, key):
- dict.__delitem__(self, key)
- self.order.remove(key)
-
-
class RNAMetaPropGroup(StructMetaPropGroup, RNAMeta):
pass
-class OrderedMeta(RNAMeta):
-
- def __init__(cls, name, bases, attributes):
- if attributes.__class__ is OrderedDictMini:
- cls.order = attributes.order
-
- def __prepare__(name, bases, **kwargs):
- return OrderedDictMini() # collections.OrderedDict()
-
-
# Same as 'Operator'
# only without 'as_keywords'
-class Manipulator(StructRNA, metaclass=OrderedMeta):
+class Manipulator(StructRNA):
__slots__ = ()
def __getattribute__(self, attr):
@@ -700,7 +674,7 @@ class Manipulator(StructRNA, metaclass=OrderedMeta):
# Only defined so operators members can be used by accessing self.order
# with doc generation 'self.properties.bl_rna.properties' can fail
-class Operator(StructRNA, metaclass=OrderedMeta):
+class Operator(StructRNA):
__slots__ = ()
def __getattribute__(self, attr):
@@ -732,7 +706,7 @@ class Operator(StructRNA, metaclass=OrderedMeta):
if attr not in ignore}
-class Macro(StructRNA, metaclass=OrderedMeta):
+class Macro(StructRNA):
# bpy_types is imported before ops is defined
# so we have to do a local import on each run
__slots__ = ()
diff --git a/release/scripts/startup/bl_operators/add_mesh_torus.py b/release/scripts/startup/bl_operators/add_mesh_torus.py
index cc7f69ca7ca..4460af173ff 100644
--- a/release/scripts/startup/bl_operators/add_mesh_torus.py
+++ b/release/scripts/startup/bl_operators/add_mesh_torus.py
@@ -134,19 +134,19 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
self.abso_major_rad = self.major_radius + self.minor_radius
self.abso_minor_rad = self.major_radius - self.minor_radius
- major_segments = IntProperty(
+ major_segments: IntProperty(
name="Major Segments",
description="Number of segments for the main ring of the torus",
min=3, max=256,
default=48,
)
- minor_segments = IntProperty(
+ minor_segments: IntProperty(
name="Minor Segments",
description="Number of segments for the minor ring of the torus",
min=3, max=256,
default=12,
)
- mode = bpy.props.EnumProperty(
+ mode: bpy.props.EnumProperty(
name="Torus Dimensions",
items=(("MAJOR_MINOR", "Major/Minor",
"Use the major/minor radii for torus dimensions"),
@@ -154,7 +154,7 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
"Use the exterior/interior radii for torus dimensions")),
update=mode_update_callback,
)
- major_radius = FloatProperty(
+ major_radius: FloatProperty(
name="Major Radius",
description=("Radius from the origin to the "
"center of the cross sections"),
@@ -163,7 +163,7 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
subtype='DISTANCE',
unit='LENGTH',
)
- minor_radius = FloatProperty(
+ minor_radius: FloatProperty(
name="Minor Radius",
description="Radius of the torus' cross section",
min=0.01, max=100.0,
@@ -171,7 +171,7 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
subtype='DISTANCE',
unit='LENGTH',
)
- abso_major_rad = FloatProperty(
+ abso_major_rad: FloatProperty(
name="Exterior Radius",
description="Total Exterior Radius of the torus",
min=0.01, max=100.0,
@@ -179,7 +179,7 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
subtype='DISTANCE',
unit='LENGTH',
)
- abso_minor_rad = FloatProperty(
+ abso_minor_rad: FloatProperty(
name="Interior Radius",
description="Total Interior Radius of the torus",
min=0.01, max=100.0,
@@ -187,7 +187,7 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
subtype='DISTANCE',
unit='LENGTH',
)
- generate_uvs = BoolProperty(
+ generate_uvs: BoolProperty(
name="Generate UVs",
description="Generate a default UV map",
default=False,
diff --git a/release/scripts/startup/bl_operators/anim.py b/release/scripts/startup/bl_operators/anim.py
index d898239d7a9..31325cf0b50 100644
--- a/release/scripts/startup/bl_operators/anim.py
+++ b/release/scripts/startup/bl_operators/anim.py
@@ -40,20 +40,20 @@ class ANIM_OT_keying_set_export(Operator):
bl_idname = "anim.keying_set_export"
bl_label = "Export Keying Set..."
- filepath = StringProperty(
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list