diff options
| author | Claude Paroz <claude@2xlibre.net> | 2016-04-16 10:34:20 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2016-04-16 19:51:00 +0200 |
| commit | 05d08367d781a11ce935bec1eb18f2b59ad5ed1b (patch) | |
| tree | 1dd8105db9d29e284323ac8fb2db45489f0b28c6 | |
| parent | d419b0c9bdf6f3de2302974b3e20b8719ca5763e (diff) | |
Set WKTWriter trim/precision only when changed
| -rw-r--r-- | django/contrib/gis/geos/prototypes/io.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/django/contrib/gis/geos/prototypes/io.py b/django/contrib/gis/geos/prototypes/io.py index b2f544e5d6..ef59f93a98 100644 --- a/django/contrib/gis/geos/prototypes/io.py +++ b/django/contrib/gis/geos/prototypes/io.py @@ -190,8 +190,9 @@ class WKTWriter(IOBase): @trim.setter def trim(self, flag): - self._trim = bool(flag) - wkt_writer_set_trim(self.ptr, b'\x01' if flag else b'\x00') + if bool(flag) != self._trim: + self._trim = bool(flag) + wkt_writer_set_trim(self.ptr, b'\x01' if flag else b'\x00') @property def precision(self): @@ -199,11 +200,11 @@ class WKTWriter(IOBase): @precision.setter def precision(self, precision): - if isinstance(precision, int) and precision >= 0 or precision is None: + if (not isinstance(precision, int) or precision < 0) and precision is not None: + raise AttributeError('WKT output rounding precision must be non-negative integer or None.') + if precision != self._precision: self._precision = precision wkt_writer_set_precision(self.ptr, -1 if precision is None else precision) - else: - raise AttributeError('WKT output rounding precision must be non-negative integer or None.') class WKBWriter(IOBase): |
