summaryrefslogtreecommitdiff
path: root/django/contrib/gis
diff options
context:
space:
mode:
authorNick Pope <nick.pope@flightdataservices.com>2017-12-11 12:08:45 +0000
committerTim Graham <timograham@gmail.com>2017-12-11 07:08:45 -0500
commitd13a9e44ded4e93570c6ba42ec84e45ddca2505b (patch)
tree0df16e6538d8794c39bd62b5a46879b8abe6572c /django/contrib/gis
parenta9e5ac823df8ba8b786b6450c967ca378c008d0e (diff)
Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.
Diffstat (limited to 'django/contrib/gis')
-rw-r--r--django/contrib/gis/db/backends/spatialite/introspection.py20
-rw-r--r--django/contrib/gis/db/models/fields.py11
-rw-r--r--django/contrib/gis/db/models/functions.py10
-rw-r--r--django/contrib/gis/db/models/lookups.py3
-rw-r--r--django/contrib/gis/forms/widgets.py10
-rw-r--r--django/contrib/gis/geos/prototypes/coordseq.py2
-rw-r--r--django/contrib/gis/geos/prototypes/threadsafe.py4
7 files changed, 26 insertions, 34 deletions
diff --git a/django/contrib/gis/db/backends/spatialite/introspection.py b/django/contrib/gis/db/backends/spatialite/introspection.py
index 5cd5613b69..967448621d 100644
--- a/django/contrib/gis/db/backends/spatialite/introspection.py
+++ b/django/contrib/gis/db/backends/spatialite/introspection.py
@@ -9,16 +9,16 @@ class GeoFlexibleFieldLookupDict(FlexibleFieldLookupDict):
Sublcass that includes updates the `base_data_types_reverse` dict
for geometry field types.
"""
- base_data_types_reverse = FlexibleFieldLookupDict.base_data_types_reverse.copy()
- base_data_types_reverse.update(
- {'point': 'GeometryField',
- 'linestring': 'GeometryField',
- 'polygon': 'GeometryField',
- 'multipoint': 'GeometryField',
- 'multilinestring': 'GeometryField',
- 'multipolygon': 'GeometryField',
- 'geometrycollection': 'GeometryField',
- })
+ base_data_types_reverse = {
+ **FlexibleFieldLookupDict.base_data_types_reverse,
+ 'point': 'GeometryField',
+ 'linestring': 'GeometryField',
+ 'polygon': 'GeometryField',
+ 'multipoint': 'GeometryField',
+ 'multilinestring': 'GeometryField',
+ 'multipolygon': 'GeometryField',
+ 'geometrycollection': 'GeometryField',
+ }
class SpatiaLiteIntrospection(DatabaseIntrospection):
diff --git a/django/contrib/gis/db/models/fields.py b/django/contrib/gis/db/models/fields.py
index fea3cfc260..5e869a8243 100644
--- a/django/contrib/gis/db/models/fields.py
+++ b/django/contrib/gis/db/models/fields.py
@@ -250,11 +250,12 @@ class GeometryField(BaseSpatialField):
setattr(cls, self.attname, SpatialProxy(self.geom_class or GEOSGeometry, self, load_func=GEOSGeometry))
def formfield(self, **kwargs):
- defaults = {'form_class': self.form_class,
- 'geom_type': self.geom_type,
- 'srid': self.srid,
- }
- defaults.update(kwargs)
+ defaults = {
+ 'form_class': self.form_class,
+ 'geom_type': self.geom_type,
+ 'srid': self.srid,
+ **kwargs,
+ }
if self.dim > 2 and not getattr(defaults['form_class'].widget, 'supports_3d', False):
defaults.setdefault('widget', forms.Textarea)
return super().formfield(**defaults)
diff --git a/django/contrib/gis/db/models/functions.py b/django/contrib/gis/db/models/functions.py
index fc46823b19..b3c8d521ca 100644
--- a/django/contrib/gis/db/models/functions.py
+++ b/django/contrib/gis/db/models/functions.py
@@ -415,12 +415,10 @@ class SnapToGrid(SQLiteDecimalToFloatMixin, GeomOutputGeoFunc):
)
elif nargs == 4:
# Reverse origin and size param ordering
- expressions.extend(
- [self._handle_param(arg, '', NUMERIC_TYPES) for arg in args[2:]]
- )
- expressions.extend(
- [self._handle_param(arg, '', NUMERIC_TYPES) for arg in args[0:2]]
- )
+ expressions += [
+ *(self._handle_param(arg, '', NUMERIC_TYPES) for arg in args[2:]),
+ *(self._handle_param(arg, '', NUMERIC_TYPES) for arg in args[0:2]),
+ ]
else:
raise ValueError('Must provide 1, 2, or 4 arguments to `SnapToGrid`.')
super().__init__(*expressions, **extra)
diff --git a/django/contrib/gis/db/models/lookups.py b/django/contrib/gis/db/models/lookups.py
index d5318568fb..6d5df2c10f 100644
--- a/django/contrib/gis/db/models/lookups.py
+++ b/django/contrib/gis/db/models/lookups.py
@@ -78,8 +78,7 @@ class GISLookup(Lookup):
rhs_sql, rhs_params = self.process_rhs(compiler, connection)
sql_params.extend(rhs_params)
- template_params = {'lhs': lhs_sql, 'rhs': rhs_sql, 'value': '%s'}
- template_params.update(self.template_params)
+ template_params = {'lhs': lhs_sql, 'rhs': rhs_sql, 'value': '%s', **self.template_params}
rhs_op = self.get_rhs_op(connection, rhs_sql)
return rhs_op.as_sql(connection, self, template_params, sql_params)
diff --git a/django/contrib/gis/forms/widgets.py b/django/contrib/gis/forms/widgets.py
index e48ba96865..0ffe2ced77 100644
--- a/django/contrib/gis/forms/widgets.py
+++ b/django/contrib/gis/forms/widgets.py
@@ -60,19 +60,15 @@ class BaseGeometryWidget(Widget):
value.srid, self.map_srid, err
)
- if attrs is None:
- attrs = {}
-
- build_attrs_kwargs = {
+ context.update(self.build_attrs(self.attrs, {
'name': name,
'module': 'geodjango_%s' % name.replace('-', '_'), # JS-safe
'serialized': self.serialize(value),
'geom_type': gdal.OGRGeomType(self.attrs['geom_type']),
'STATIC_URL': settings.STATIC_URL,
'LANGUAGE_BIDI': translation.get_language_bidi(),
- }
- build_attrs_kwargs.update(attrs)
- context.update(self.build_attrs(self.attrs, build_attrs_kwargs))
+ **(attrs or {}),
+ }))
return context
diff --git a/django/contrib/gis/geos/prototypes/coordseq.py b/django/contrib/gis/geos/prototypes/coordseq.py
index 75b375884c..d1a5ed6043 100644
--- a/django/contrib/gis/geos/prototypes/coordseq.py
+++ b/django/contrib/gis/geos/prototypes/coordseq.py
@@ -49,7 +49,7 @@ class CsOperation(GEOSFuncFactory):
else:
argtypes = [CS_PTR, c_uint, dbl_param]
- super().__init__(*args, **dict(kwargs, errcheck=errcheck, argtypes=argtypes))
+ super().__init__(*args, **{**kwargs, 'errcheck': errcheck, 'argtypes': argtypes})
class CsOutput(GEOSFuncFactory):
diff --git a/django/contrib/gis/geos/prototypes/threadsafe.py b/django/contrib/gis/geos/prototypes/threadsafe.py
index 24f8f288c1..04eb496704 100644
--- a/django/contrib/gis/geos/prototypes/threadsafe.py
+++ b/django/contrib/gis/geos/prototypes/threadsafe.py
@@ -55,9 +55,7 @@ class GEOSFunc:
return self.cfunc.argtypes
def _set_argtypes(self, argtypes):
- new_argtypes = [CONTEXT_PTR]
- new_argtypes.extend(argtypes)
- self.cfunc.argtypes = new_argtypes
+ self.cfunc.argtypes = [CONTEXT_PTR, *argtypes]
argtypes = property(_get_argtypes, _set_argtypes)