summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2016-04-16 10:34:20 +0200
committerClaude Paroz <claude@2xlibre.net>2016-04-16 19:51:00 +0200
commit05d08367d781a11ce935bec1eb18f2b59ad5ed1b (patch)
tree1dd8105db9d29e284323ac8fb2db45489f0b28c6
parentd419b0c9bdf6f3de2302974b3e20b8719ca5763e (diff)
Set WKTWriter trim/precision only when changed
-rw-r--r--django/contrib/gis/geos/prototypes/io.py11
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):