diff options
| author | Tim Graham <timograham@gmail.com> | 2017-07-27 13:52:17 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-08-02 09:30:30 -0400 |
| commit | 78c155cf2e5a27fd2db18c2d46953b1b0fdba829 (patch) | |
| tree | 0e2887ec6d340a07b1d4576fcfd1037a803ed0f8 /django | |
| parent | 78f7f6802175c6ef9a1c5160bbad0b9d2661f603 (diff) | |
Fixed #28441 -- Fixed GEOS version parsing with a commit hash at the end.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/gis/geos/__init__.py | 2 | ||||
| -rw-r--r-- | django/contrib/gis/geos/libgeos.py | 26 |
2 files changed, 2 insertions, 26 deletions
diff --git a/django/contrib/gis/geos/__init__.py b/django/contrib/gis/geos/__init__.py index 22a01a4cf2..65e7e54817 100644 --- a/django/contrib/gis/geos/__init__.py +++ b/django/contrib/gis/geos/__init__.py @@ -9,7 +9,7 @@ from .error import GEOSException # NOQA from .factory import fromfile, fromstr # NOQA from .geometry import GEOSGeometry, hex_regex, wkt_regex # NOQA from .io import WKBReader, WKBWriter, WKTReader, WKTWriter # NOQA -from .libgeos import geos_version, geos_version_info # NOQA +from .libgeos import geos_version # NOQA from .linestring import LinearRing, LineString # NOQA from .point import Point # NOQA from .polygon import Polygon # NOQA diff --git a/django/contrib/gis/geos/libgeos.py b/django/contrib/gis/geos/libgeos.py index 810161ffeb..29a15a249b 100644 --- a/django/contrib/gis/geos/libgeos.py +++ b/django/contrib/gis/geos/libgeos.py @@ -8,11 +8,9 @@ """ import logging import os -import re from ctypes import CDLL, CFUNCTYPE, POINTER, Structure, c_char_p from ctypes.util import find_library -from django.contrib.gis.geos.error import GEOSException from django.core.exceptions import ImproperlyConfigured from django.utils.functional import SimpleLazyObject from django.utils.version import get_version_tuple @@ -179,29 +177,7 @@ class GEOSFuncFactory: # explicitly to c_char_p to ensure compatibility across 32 and 64-bit platforms. geos_version = GEOSFuncFactory('GEOSversion', restype=c_char_p) -# Regular expression should be able to parse version strings such as -# '3.0.0rc4-CAPI-1.3.3', '3.0.0-CAPI-1.4.1', '3.4.0dev-CAPI-1.8.0' or '3.4.0dev-CAPI-1.8.0 r0' -version_regex = re.compile( - r'^(?P<version>(?P<major>\d+)\.(?P<minor>\d+)\.(?P<subminor>\d+))' - r'((rc(?P<release_candidate>\d+))|dev)?-CAPI-(?P<capi_version>\d+\.\d+\.\d+)( r\d+)?$' -) - - -def geos_version_info(): - """ - Return a dictionary containing the various version metadata parsed from - the GEOS version string, including the version number, whether the version - is a release candidate (and what number release candidate), and the C API - version. - """ - ver = geos_version().decode() - m = version_regex.match(ver) - if not m: - raise GEOSException('Could not parse version info string "%s"' % ver) - return {key: m.group(key) for key in ( - 'version', 'release_candidate', 'capi_version', 'major', 'minor', 'subminor')} - def geos_version_tuple(): """Return the GEOS version as a tuple (major, minor, subminor).""" - return get_version_tuple(geos_version_info()['version']) + return get_version_tuple(geos_version().decode()) |
