diff --git a/CHANGES.rst b/CHANGES.rst index d576380e..e7015ddc 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,8 @@ +1.8.28 (2019-09-09) +------------------- + +- [api] fix `Effects.__repr__()` when data is empty. + 1.8.27 (2019-08-29) ------------------- diff --git a/src/psd_tools/api/effects.py b/src/psd_tools/api/effects.py index 035e66f0..d291f1b8 100644 --- a/src/psd_tools/api/effects.py +++ b/src/psd_tools/api/effects.py @@ -48,7 +48,7 @@ def __init__(self, layer): @property def scale(self): """Scale value.""" - return self._data.get(Key.Scale).value + return self._data.get(Key.Scale).value if self._data else None @property def enabled(self): @@ -56,7 +56,7 @@ def enabled(self): :rtype: bool """ - return bool(self._data.get(b'masterFXSwitch')) + return bool(self._data.get(b'masterFXSwitch')) if self._data else False @property def items(self): @@ -78,9 +78,10 @@ def __getitem__(self, key): # return self._items.__delitem__(key) def __repr__(self): - return '%s(%s%s)' % ( - self.__class__.__name__, '' if self.enabled else 'disabled ', - ' '.join(x.__class__.__name__.lower() for x in self) + return '%s(%s)' % ( + self.__class__.__name__, + ' '.join(x.__class__.__name__.lower() + for x in self) if self._data else '' ) diff --git a/src/psd_tools/version.py b/src/psd_tools/version.py index 7971ab02..135c9c2c 100644 --- a/src/psd_tools/version.py +++ b/src/psd_tools/version.py @@ -1 +1 @@ -__version__ = '1.8.27' +__version__ = '1.8.28' diff --git a/tests/psd_tools/api/test_effects.py b/tests/psd_tools/api/test_effects.py index 925f50dd..08d2e801 100644 --- a/tests/psd_tools/api/test_effects.py +++ b/tests/psd_tools/api/test_effects.py @@ -21,6 +21,8 @@ def fixture(): def test_effects(fixture): assert isinstance(fixture[0].effects.scale, float) assert fixture[0].effects.enabled is True + for layer in fixture: + assert layer.__repr__() for effect in fixture[0].effects: assert effect.enabled is True