From 429318756e893590e4d82d3a8da988b282ab207d Mon Sep 17 00:00:00 2001 From: Bill Little Date: Wed, 7 Jul 2021 09:48:33 +0100 Subject: [PATCH] review actions --- lib/iris/common/metadata.py | 11 ++++------- .../common/metadata/test_metadata_manager_factory.py | 8 -------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/iris/common/metadata.py b/lib/iris/common/metadata.py index f166e946a8c..12ae7a395b3 100644 --- a/lib/iris/common/metadata.py +++ b/lib/iris/common/metadata.py @@ -1344,10 +1344,12 @@ def __init__(self, cls, **kwargs): #: The metadata class to be manufactured by this factory. self.cls = cls - # Proxy for self.cls._fields + # Proxy for self.cls._fields for later internal use, as this + # saves on indirect property lookup via self.cls self._fields = cls._fields # Initialise the metadata class fields in the instance. + # Use cls directly here since it's available. for field in cls._fields: setattr(self, field, None) @@ -1411,12 +1413,7 @@ def values(self): fields = {field: getattr(self, field) for field in self._fields} return self.cls(**fields) - # Restrict factory to appropriate metadata classes only. - if not issubclass(cls, BaseMetadata): - emsg = "Require a subclass of {!r}, got {!r}." - raise TypeError(emsg.format(BaseMetadata.__name__, cls)) - - # Define the name, (inheritance) bases and namespace of the dynamic class. + # Define the name, (inheritance) bases, and namespace of the dynamic class. name = "MetadataManager" bases = () namespace = { diff --git a/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py b/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py index eb6560519c4..3afc93753dd 100644 --- a/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py +++ b/lib/iris/tests/unit/common/metadata/test_metadata_manager_factory.py @@ -36,14 +36,6 @@ class Test_factory(tests.IrisTest): - def test__subclass_invalid(self): - class Other: - pass - - emsg = "Require a subclass of 'BaseMetadata'" - with self.assertRaisesRegex(TypeError, emsg): - _ = metadata_manager_factory(Other) - def test__kwargs_invalid(self): emsg = "Invalid 'BaseMetadata' field parameters, got 'wibble'." with self.assertRaisesRegex(ValueError, emsg):