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-07-11 23:18:09 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-07-11 23:18:09 +0300
commit09aa799e5331a9da666f8a6325b038a866b1f35d (patch)
treeccff0086f70ea7929554a7e4c90bd1182f125ba6 /release/scripts/modules
parente3c85aaca74fc7bd2a9da43a0396a886363bc93d (diff)
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.
Diffstat (limited to 'release/scripts/modules')
-rw-r--r--release/scripts/modules/bpy_extras/io_utils.py22
-rw-r--r--release/scripts/modules/bpy_extras/keyconfig_utils.py1
-rw-r--r--release/scripts/modules/bpy_extras/object_utils.py6
-rw-r--r--release/scripts/modules/bpy_types.py32
4 files changed, 10 insertions, 51 deletions
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__ = ()