Refs #25665 -- Deprecated getter/setter of GEOSGeometry.srid.
This commit is contained in:
parent
5f7f3b4685
commit
b7177cc2a4
|
@ -5,6 +5,7 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
import warnings
|
||||||
from ctypes import addressof, byref, c_double
|
from ctypes import addressof, byref, c_double
|
||||||
|
|
||||||
from django.contrib.gis import gdal
|
from django.contrib.gis import gdal
|
||||||
|
@ -20,6 +21,7 @@ from django.contrib.gis.geos.prototypes.io import (
|
||||||
ewkb_w, wkb_r, wkb_w, wkt_r, wkt_w,
|
ewkb_w, wkb_r, wkb_w, wkt_r, wkt_w,
|
||||||
)
|
)
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
from django.utils.deprecation import RemovedInDjango20Warning
|
||||||
from django.utils.encoding import force_bytes, force_text
|
from django.utils.encoding import force_bytes, force_text
|
||||||
|
|
||||||
|
|
||||||
|
@ -356,7 +358,8 @@ class GEOSGeometry(GEOSBase, ListMixin):
|
||||||
return capi.geos_within(self.ptr, other.ptr)
|
return capi.geos_within(self.ptr, other.ptr)
|
||||||
|
|
||||||
# #### SRID Routines ####
|
# #### SRID Routines ####
|
||||||
def get_srid(self):
|
@property
|
||||||
|
def srid(self):
|
||||||
"Gets the SRID for the geometry, returns None if no SRID is set."
|
"Gets the SRID for the geometry, returns None if no SRID is set."
|
||||||
s = capi.geos_get_srid(self.ptr)
|
s = capi.geos_get_srid(self.ptr)
|
||||||
if s == 0:
|
if s == 0:
|
||||||
|
@ -364,10 +367,24 @@ class GEOSGeometry(GEOSBase, ListMixin):
|
||||||
else:
|
else:
|
||||||
return s
|
return s
|
||||||
|
|
||||||
def set_srid(self, srid):
|
@srid.setter
|
||||||
|
def srid(self, srid):
|
||||||
"Sets the SRID for the geometry."
|
"Sets the SRID for the geometry."
|
||||||
capi.geos_set_srid(self.ptr, 0 if srid is None else srid)
|
capi.geos_set_srid(self.ptr, 0 if srid is None else srid)
|
||||||
srid = property(get_srid, set_srid)
|
|
||||||
|
def get_srid(self):
|
||||||
|
warnings.warn(
|
||||||
|
"`get_srid()` is deprecated, use the `srid` property instead.",
|
||||||
|
RemovedInDjango20Warning, 2
|
||||||
|
)
|
||||||
|
return self.srid
|
||||||
|
|
||||||
|
def set_srid(self, srid):
|
||||||
|
warnings.warn(
|
||||||
|
"`set_srid()` is deprecated, use the `srid` property instead.",
|
||||||
|
RemovedInDjango20Warning, 2
|
||||||
|
)
|
||||||
|
self.srid = srid
|
||||||
|
|
||||||
# #### Output Routines ####
|
# #### Output Routines ####
|
||||||
@property
|
@property
|
||||||
|
@ -375,10 +392,8 @@ class GEOSGeometry(GEOSBase, ListMixin):
|
||||||
"""
|
"""
|
||||||
Returns the EWKT (SRID + WKT) of the Geometry.
|
Returns the EWKT (SRID + WKT) of the Geometry.
|
||||||
"""
|
"""
|
||||||
if self.get_srid():
|
srid = self.srid
|
||||||
return 'SRID=%s;%s' % (self.srid, self.wkt)
|
return 'SRID=%s;%s' % (srid, self.wkt) if srid else self.wkt
|
||||||
else:
|
|
||||||
return self.wkt
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def wkt(self):
|
def wkt(self):
|
||||||
|
|
|
@ -112,6 +112,9 @@ details on these changes.
|
||||||
* Support for direct assignment to a reverse foreign key or many-to-many
|
* Support for direct assignment to a reverse foreign key or many-to-many
|
||||||
relation will be removed.
|
relation will be removed.
|
||||||
|
|
||||||
|
* The ``get_srid()`` and ``set_srid()`` methods of
|
||||||
|
``django.contrib.gis.geos.GEOSGeometry`` will be removed.
|
||||||
|
|
||||||
.. _deprecation-removed-in-1.10:
|
.. _deprecation-removed-in-1.10:
|
||||||
|
|
||||||
1.10
|
1.10
|
||||||
|
|
|
@ -328,6 +328,13 @@ added in Django 1.9::
|
||||||
|
|
||||||
This prevents confusion about an assignment resulting in an implicit save.
|
This prevents confusion about an assignment resulting in an implicit save.
|
||||||
|
|
||||||
|
:mod:`django.contrib.gis`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
* The ``get_srid()`` and ``set_srid()`` methods of
|
||||||
|
:class:`~django.contrib.gis.geos.GEOSGeometry` are deprecated in favor
|
||||||
|
of the :attr:`~django.contrib.gis.geos.GEOSGeometry.srid` property.
|
||||||
|
|
||||||
Miscellaneous
|
Miscellaneous
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,9 @@ from django.contrib.gis.geos.base import GEOSBase
|
||||||
from django.contrib.gis.shortcuts import numpy
|
from django.contrib.gis.shortcuts import numpy
|
||||||
from django.template import Context
|
from django.template import Context
|
||||||
from django.template.engine import Engine
|
from django.template.engine import Engine
|
||||||
from django.test import mock
|
from django.test import ignore_warnings, mock
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
from django.utils.deprecation import RemovedInDjango20Warning
|
||||||
from django.utils.encoding import force_bytes
|
from django.utils.encoding import force_bytes
|
||||||
from django.utils.six.moves import range
|
from django.utils.six.moves import range
|
||||||
|
|
||||||
|
@ -629,7 +630,8 @@ class GEOSTest(unittest.TestCase, TestDataMixin):
|
||||||
self.assertEqual(4326, pnt.srid)
|
self.assertEqual(4326, pnt.srid)
|
||||||
pnt.srid = 3084
|
pnt.srid = 3084
|
||||||
self.assertEqual(3084, pnt.srid)
|
self.assertEqual(3084, pnt.srid)
|
||||||
self.assertRaises(ctypes.ArgumentError, pnt.set_srid, '4326')
|
with self.assertRaises(ctypes.ArgumentError):
|
||||||
|
pnt.srid = '4326'
|
||||||
|
|
||||||
# Testing SRID keyword on fromstr(), and on Polygon rings.
|
# Testing SRID keyword on fromstr(), and on Polygon rings.
|
||||||
poly = fromstr(self.geometries.polygons[1].wkt, srid=4269)
|
poly = fromstr(self.geometries.polygons[1].wkt, srid=4269)
|
||||||
|
@ -1138,3 +1140,11 @@ class GEOSTest(unittest.TestCase, TestDataMixin):
|
||||||
self.assertTrue(m, msg="Unable to parse the version string '%s'" % v_init)
|
self.assertTrue(m, msg="Unable to parse the version string '%s'" % v_init)
|
||||||
self.assertEqual(m.group('version'), v_geos)
|
self.assertEqual(m.group('version'), v_geos)
|
||||||
self.assertEqual(m.group('capi_version'), v_capi)
|
self.assertEqual(m.group('capi_version'), v_capi)
|
||||||
|
|
||||||
|
@ignore_warnings(category=RemovedInDjango20Warning)
|
||||||
|
def test_deprecated_srid_getters_setters(self):
|
||||||
|
p = Point(1, 2, srid=123)
|
||||||
|
self.assertEqual(p.get_srid(), p.srid)
|
||||||
|
|
||||||
|
p.set_srid(321)
|
||||||
|
self.assertEqual(p.srid, 321)
|
||||||
|
|
Loading…
Reference in New Issue