mirror of
https://github.com/django/django.git
synced 2025-03-11 09:52:38 +00:00
Deprecated django.contrib.gis.geoip2.GeoIP2.coords().
The `ordering` argument is undocumented and of limited use, so this is effectively the same as `GeoIP2.lon_lat()`.
This commit is contained in:
parent
1311f82a6a
commit
b925fefd7d
@ -1,4 +1,5 @@
|
|||||||
import socket
|
import socket
|
||||||
|
import warnings
|
||||||
|
|
||||||
import geoip2.database
|
import geoip2.database
|
||||||
|
|
||||||
@ -6,6 +7,7 @@ from django.conf import settings
|
|||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.validators import validate_ipv46_address
|
from django.core.validators import validate_ipv46_address
|
||||||
from django.utils._os import to_path
|
from django.utils._os import to_path
|
||||||
|
from django.utils.deprecation import RemovedInDjango60Warning
|
||||||
|
|
||||||
from .resources import City, Country
|
from .resources import City, Country
|
||||||
|
|
||||||
@ -199,6 +201,11 @@ class GeoIP2:
|
|||||||
return Country(self._country_or_city(enc_query))
|
return Country(self._country_or_city(enc_query))
|
||||||
|
|
||||||
def coords(self, query, ordering=("longitude", "latitude")):
|
def coords(self, query, ordering=("longitude", "latitude")):
|
||||||
|
warnings.warn(
|
||||||
|
"GeoIP2.coords() is deprecated. Use GeoIP2.lon_lat() instead.",
|
||||||
|
RemovedInDjango60Warning,
|
||||||
|
stacklevel=2,
|
||||||
|
)
|
||||||
data = self.city(query)
|
data = self.city(query)
|
||||||
return tuple(data[o] for o in ordering)
|
return tuple(data[o] for o in ordering)
|
||||||
|
|
||||||
|
@ -64,6 +64,8 @@ details on these changes.
|
|||||||
* The undocumented ``django.utils.itercompat.is_iterable()`` function and the
|
* The undocumented ``django.utils.itercompat.is_iterable()`` function and the
|
||||||
``django.utils.itercompat`` module will be removed.
|
``django.utils.itercompat`` module will be removed.
|
||||||
|
|
||||||
|
* The ``django.contrib.gis.geoip2.GeoIP2.coords()`` method will be removed.
|
||||||
|
|
||||||
.. _deprecation-removed-in-5.1:
|
.. _deprecation-removed-in-5.1:
|
||||||
|
|
||||||
5.1
|
5.1
|
||||||
|
@ -133,6 +133,10 @@ Coordinate Retrieval
|
|||||||
|
|
||||||
Returns a coordinate tuple of (longitude, latitude).
|
Returns a coordinate tuple of (longitude, latitude).
|
||||||
|
|
||||||
|
.. deprecated:: 5.1
|
||||||
|
|
||||||
|
Use :meth:`.GeoIP2.lon_lat` instead.
|
||||||
|
|
||||||
.. method:: GeoIP2.lon_lat(query)
|
.. method:: GeoIP2.lon_lat(query)
|
||||||
|
|
||||||
Returns a coordinate tuple of (longitude, latitude).
|
Returns a coordinate tuple of (longitude, latitude).
|
||||||
|
@ -307,6 +307,9 @@ Miscellaneous
|
|||||||
``django.utils.itercompat`` module are deprecated. Use
|
``django.utils.itercompat`` module are deprecated. Use
|
||||||
``isinstance(..., collections.abc.Iterable)`` instead.
|
``isinstance(..., collections.abc.Iterable)`` instead.
|
||||||
|
|
||||||
|
* The ``django.contrib.gis.geoip2.GeoIP2.coords()`` method is deprecated. Use
|
||||||
|
``django.contrib.gis.geoip2.GeoIP2.lon_lat()`` instead.
|
||||||
|
|
||||||
Features removed in 5.1
|
Features removed in 5.1
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ from django.conf import settings
|
|||||||
from django.contrib.gis.geoip2 import HAS_GEOIP2
|
from django.contrib.gis.geoip2 import HAS_GEOIP2
|
||||||
from django.contrib.gis.geos import GEOSGeometry
|
from django.contrib.gis.geos import GEOSGeometry
|
||||||
from django.test import SimpleTestCase
|
from django.test import SimpleTestCase
|
||||||
|
from django.utils.deprecation import RemovedInDjango60Warning
|
||||||
|
|
||||||
if HAS_GEOIP2:
|
if HAS_GEOIP2:
|
||||||
from django.contrib.gis.geoip2 import GeoIP2, GeoIP2Exception
|
from django.contrib.gis.geoip2 import GeoIP2, GeoIP2Exception
|
||||||
@ -71,8 +72,6 @@ class GeoIPTest(SimpleTestCase):
|
|||||||
# No city database available, these calls should fail.
|
# No city database available, these calls should fail.
|
||||||
with self.assertRaises(GeoIP2Exception):
|
with self.assertRaises(GeoIP2Exception):
|
||||||
cntry_g.city("tmc.edu")
|
cntry_g.city("tmc.edu")
|
||||||
with self.assertRaises(GeoIP2Exception):
|
|
||||||
cntry_g.coords("tmc.edu")
|
|
||||||
|
|
||||||
# Non-string query should raise TypeError
|
# Non-string query should raise TypeError
|
||||||
with self.assertRaises(TypeError):
|
with self.assertRaises(TypeError):
|
||||||
@ -139,7 +138,6 @@ class GeoIPTest(SimpleTestCase):
|
|||||||
|
|
||||||
for e1, e2 in (
|
for e1, e2 in (
|
||||||
geom.tuple,
|
geom.tuple,
|
||||||
g.coords(query),
|
|
||||||
g.lon_lat(query),
|
g.lon_lat(query),
|
||||||
g.lat_lon(query),
|
g.lat_lon(query),
|
||||||
):
|
):
|
||||||
@ -182,3 +180,11 @@ class GeoIPTest(SimpleTestCase):
|
|||||||
g._check_query("2002:81ed:c9a5::81ed:c9a5"), "2002:81ed:c9a5::81ed:c9a5"
|
g._check_query("2002:81ed:c9a5::81ed:c9a5"), "2002:81ed:c9a5::81ed:c9a5"
|
||||||
)
|
)
|
||||||
self.assertEqual(g._check_query("invalid-ip-address"), "expected")
|
self.assertEqual(g._check_query("invalid-ip-address"), "expected")
|
||||||
|
|
||||||
|
def test_coords_deprecation_warning(self):
|
||||||
|
g = GeoIP2()
|
||||||
|
msg = "GeoIP2.coords() is deprecated. Use GeoIP2.lon_lat() instead."
|
||||||
|
with self.assertWarnsMessage(RemovedInDjango60Warning, msg):
|
||||||
|
e1, e2 = g.coords(self.fqdn)
|
||||||
|
self.assertIsInstance(e1, float)
|
||||||
|
self.assertIsInstance(e2, float)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user