2424
2525
2626__all__ = [
27- ' InBBoxFilter' ,
28- ' InBBOXFilter' ,
29- ' GeometryFilter' ,
30- ' GeoFilterSet' ,
31- ' TMSTileFilter' ,
32- ' DistanceToPointFilter' ,
33- ' DistanceToPointOrderingFilter' ,
27+ " InBBoxFilter" ,
28+ " InBBOXFilter" ,
29+ " GeometryFilter" ,
30+ " GeoFilterSet" ,
31+ " TMSTileFilter" ,
32+ " DistanceToPointFilter" ,
33+ " DistanceToPointOrderingFilter" ,
3434]
3535
3636
3737class InBBoxFilter (BaseFilterBackend ):
38- bbox_param = ' in_bbox' # The URL query parameter which contains the bbox.
38+ bbox_param = " in_bbox" # The URL query parameter which contains the bbox.
3939
4040 def get_filter_bbox (self , request ):
4141 bbox_string = request .query_params .get (self .bbox_param , None )
4242 if not bbox_string :
4343 return None
4444
4545 try :
46- p1x , p1y , p2x , p2y = (float (n ) for n in bbox_string .split (',' ))
46+ p1x , p1y , p2x , p2y = (float (n ) for n in bbox_string .split ("," ))
4747 except ValueError :
4848 raise ParseError (
49- f' Invalid bbox string supplied for parameter { self .bbox_param } '
49+ f" Invalid bbox string supplied for parameter { self .bbox_param } "
5050 )
5151
5252 x = Polygon .from_bbox ((p1x , p1y , p2x , p2y ))
5353 return x
5454
5555 def filter_queryset (self , request , queryset , view ):
56- filter_field = getattr (view , ' bbox_filter_field' , None )
57- include_overlapping = getattr (view , ' bbox_filter_include_overlapping' , False )
56+ filter_field = getattr (view , " bbox_filter_field" , None )
57+ include_overlapping = getattr (view , " bbox_filter_include_overlapping" , False )
5858 if include_overlapping :
59- geoDjango_filter = ' bboverlaps'
59+ geoDjango_filter = " bboverlaps"
6060 else :
61- geoDjango_filter = ' contained'
61+ geoDjango_filter = " contained"
6262
6363 if not filter_field :
6464 return queryset
6565
6666 bbox = self .get_filter_bbox (request )
6767 if not bbox :
6868 return queryset
69- return queryset .filter (Q (** {f' { filter_field } __{ geoDjango_filter } ' : bbox }))
69+ return queryset .filter (Q (** {f" { filter_field } __{ geoDjango_filter } " : bbox }))
7070
7171 def get_schema_operation_parameters (self , view ):
7272 return [
@@ -96,13 +96,13 @@ class GeometryFilter(django_filters.Filter):
9696 field_class = forms .GeometryField
9797
9898 def __init__ (self , * args , ** kwargs ):
99- kwargs .setdefault (' widget' , forms .TextInput )
99+ kwargs .setdefault (" widget" , forms .TextInput )
100100 super ().__init__ (* args , ** kwargs )
101101
102102
103103class GeoFilterSet (django_filters .FilterSet ):
104104 GEOFILTER_FOR_DBFIELD_DEFAULTS = {
105- models .GeometryField : {' filterset_class' : GeometryFilter },
105+ models .GeometryField : {" filterset_class" : GeometryFilter },
106106 }
107107
108108 def __new__ (cls , * args , ** kwargs ):
@@ -116,18 +116,18 @@ def __new__(cls, *args, **kwargs):
116116
117117
118118class TMSTileFilter (InBBoxFilter ):
119- tile_param = ' tile' # The URL query parameter which contains the tile address
119+ tile_param = " tile" # The URL query parameter which contains the tile address
120120
121121 def get_filter_bbox (self , request ):
122122 tile_string = request .query_params .get (self .tile_param , None )
123123 if not tile_string :
124124 return None
125125
126126 try :
127- z , x , y = (int (n ) for n in tile_string .split ('/' ))
127+ z , x , y = (int (n ) for n in tile_string .split ("/" ))
128128 except ValueError :
129129 raise ParseError (
130- f' Invalid tile string supplied for parameter { self .tile_param } '
130+ f" Invalid tile string supplied for parameter { self .tile_param } "
131131 )
132132
133133 bbox = Polygon .from_bbox (tile_edges (x , y , z ))
@@ -146,19 +146,19 @@ def get_schema_operation_parameters(self, view):
146146
147147
148148class DistanceToPointFilter (BaseFilterBackend ):
149- dist_param = ' dist'
150- point_param = ' point' # The URL query parameter which contains the
149+ dist_param = " dist"
150+ point_param = " point" # The URL query parameter which contains the
151151
152152 def get_filter_point (self , request , ** kwargs ):
153153 point_string = request .query_params .get (self .point_param , None )
154154 if not point_string :
155155 return None
156156
157157 try :
158- (x , y ) = (float (n ) for n in point_string .split (',' ))
158+ (x , y ) = (float (n ) for n in point_string .split ("," ))
159159 except ValueError :
160160 raise ParseError (
161- ' Invalid geometry string supplied for parameter {}' .format (
161+ " Invalid geometry string supplied for parameter {}" .format (
162162 self .point_param
163163 )
164164 )
@@ -195,9 +195,9 @@ def dist_to_deg(self, distance, latitude):
195195 return distance / (earthRadius * latitudeCorrection ) * rad2deg
196196
197197 def filter_queryset (self , request , queryset , view ):
198- filter_field = getattr (view , ' distance_filter_field' , None )
199- convert_distance_input = getattr (view , ' distance_filter_convert_meters' , False )
200- geoDjango_filter = ' dwithin' # use dwithin for points
198+ filter_field = getattr (view , " distance_filter_field" , None )
199+ convert_distance_input = getattr (view , " distance_filter_convert_meters" , False )
200+ geoDjango_filter = " dwithin" # use dwithin for points
201201
202202 if not filter_field :
203203 return queryset
@@ -212,7 +212,7 @@ def filter_queryset(self, request, queryset, view):
212212 dist = float (dist_string )
213213 except ValueError :
214214 raise ParseError (
215- ' Invalid distance string supplied for parameter {}' .format (
215+ " Invalid distance string supplied for parameter {}" .format (
216216 self .dist_param
217217 )
218218 )
@@ -222,7 +222,7 @@ def filter_queryset(self, request, queryset, view):
222222 dist = self .dist_to_deg (dist , point [1 ])
223223
224224 return queryset .filter (
225- Q (** {f' { filter_field } __{ geoDjango_filter } ' : (point , dist )})
225+ Q (** {f" { filter_field } __{ geoDjango_filter } " : (point , dist )})
226226 )
227227
228228 def get_schema_operation_parameters (self , view ):
@@ -256,10 +256,10 @@ def get_schema_operation_parameters(self, view):
256256
257257class DistanceToPointOrderingFilter (DistanceToPointFilter ):
258258 srid = 4326
259- order_param = ' order'
259+ order_param = " order"
260260
261261 def filter_queryset (self , request , queryset , view ):
262- filter_field = getattr (view , ' distance_ordering_filter_field' , None )
262+ filter_field = getattr (view , " distance_ordering_filter_field" , None )
263263
264264 if not filter_field :
265265 return queryset
@@ -269,7 +269,7 @@ def filter_queryset(self, request, queryset, view):
269269 return queryset
270270
271271 order = request .query_params .get (self .order_param )
272- if order == ' desc' :
272+ if order == " desc" :
273273 return queryset .order_by (- GeometryDistance (filter_field , point ))
274274 else :
275275 return queryset .order_by (GeometryDistance (filter_field , point ))
0 commit comments