diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-07-11 23:18:09 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-07-11 23:18:09 +0300 |
commit | 09aa799e5331a9da666f8a6325b038a866b1f35d (patch) | |
tree | ccff0086f70ea7929554a7e4c90bd1182f125ba6 /release/scripts/modules | |
parent | e3c85aaca74fc7bd2a9da43a0396a886363bc93d (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.py | 22 | ||||
-rw-r--r-- | release/scripts/modules/bpy_extras/keyconfig_utils.py | 1 | ||||
-rw-r--r-- | release/scripts/modules/bpy_extras/object_utils.py | 6 | ||||
-rw-r--r-- | release/scripts/modules/bpy_types.py | 32 |
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__ = () |