Skip to content

Commit d57048b

Browse files
authored
Merge pull request pallets-eco#1427 from pawl/add_flake8
Add flake8 to tests
2 parents 60483b0 + b8bcb4f commit d57048b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+313
-207
lines changed

flask_admin/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
__email__ = '[email protected]'
44

55

6-
from .base import expose, expose_plugview, Admin, BaseView, AdminIndexView
6+
from .base import expose, expose_plugview, Admin, BaseView, AdminIndexView # noqa: F401

flask_admin/_compat.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# -*- coding: utf-8 -*-
2+
# flake8: noqa
23
"""
34
flask_admin._compat
45
~~~~~~~~~~~~~~~~~~~~~~~

flask_admin/base.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from flask_admin import helpers as h
1010

1111
# For compatibility reasons import MenuLink
12-
from flask_admin.menu import MenuCategory, MenuView, MenuLink
12+
from flask_admin.menu import MenuCategory, MenuView, MenuLink # noqa: F401
1313

1414

1515
def expose(url='/', methods=('GET',)):
@@ -670,7 +670,6 @@ def init_app(self, app, index_view=None,
670670
for view in self._views:
671671
app.register_blueprint(view.create_blueprint(self))
672672

673-
674673
def _init_extension(self):
675674
if not hasattr(self.app, 'extensions'):
676675
self.app.extensions = dict()
@@ -699,4 +698,4 @@ def menu_links(self):
699698
"""
700699
Return menu links.
701700
"""
702-
return self._menu_links
701+
return self._menu_links

flask_admin/contrib/appengine/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# flake8: noqa
12
try:
23
import wtforms_appengine
34
except ImportError:

flask_admin/contrib/appengine/fields.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import decimal
55

6+
67
class GeoPtPropertyField(StringField):
78
def process_formdata(self, valuelist):
89
if valuelist:

flask_admin/contrib/appengine/form.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from .fields import GeoPtPropertyField
33
from flask_admin.model.form import converts
44

5+
56
class AdminModelConverter(ModelConverter):
67
@converts('GeoPt')
78
def convert_GeoPtProperty(self, model, prop, kwargs):

flask_admin/contrib/appengine/view.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from flask_admin.model.form import create_editable_list_form
1212
from .form import AdminModelConverter
1313

14+
1415
class NdbModelView(BaseModelView):
1516
"""
1617
AppEngine NDB model scaffolding.
@@ -32,7 +33,7 @@ def is_valid_filter(self):
3233
pass
3334

3435
def scaffold_filters(self):
35-
#TODO: implement
36+
# TODO: implement
3637
pass
3738

3839
form_args = None
@@ -75,7 +76,7 @@ def scaffold_list_form(self, widget=None, validators=None):
7576

7677
def get_list(self, page, sort_field, sort_desc, search, filters,
7778
page_size=None):
78-
#TODO: implement filters (don't think search can work here)
79+
# TODO: implement filters (don't think search can work here)
7980

8081
q = self.model.query()
8182

@@ -88,7 +89,7 @@ def get_list(self, page, sort_field, sort_desc, search, filters,
8889
if not page_size:
8990
page_size = self.page_size
9091

91-
results = q.fetch(page_size, offset=page*page_size)
92+
results = q.fetch(page_size, offset=page * page_size)
9293

9394
return q.count(), results
9495

@@ -102,7 +103,7 @@ def create_model(self, form):
102103
model.put()
103104
except Exception as ex:
104105
if not self.handle_view_exception(ex):
105-
#flash(gettext('Failed to create record. %(error)s',
106+
# flash(gettext('Failed to create record. %(error)s',
106107
# error=ex), 'error')
107108
logging.exception('Failed to create record.')
108109
return False
@@ -117,7 +118,7 @@ def update_model(self, form, model):
117118
model.put()
118119
except Exception as ex:
119120
if not self.handle_view_exception(ex):
120-
#flash(gettext('Failed to update record. %(error)s',
121+
# flash(gettext('Failed to update record. %(error)s',
121122
# error=ex), 'error')
122123
logging.exception('Failed to update record.')
123124
return False
@@ -126,19 +127,19 @@ def update_model(self, form, model):
126127

127128
return True
128129

129-
def delete_model(self, model):
130+
def delete_model(self, model):
130131
try:
131132
model.key.delete()
132133
except Exception as ex:
133134
if not self.handle_view_exception(ex):
134-
#flash(gettext('Failed to delete record. %(error)s',
135+
# flash(gettext('Failed to delete record. %(error)s',
135136
# error=ex),
136137
# 'error')
137138
logging.exception('Failed to delete record.')
138139
return False
139140
else:
140141
self.after_model_delete(model)
141-
142+
142143
return True
143144

144145

@@ -155,7 +156,8 @@ def scaffold_list_columns(self):
155156

156157
def scaffold_sortable_columns(self):
157158
# We use getattr() because ReferenceProperty does not specify a 'indexed' field
158-
return [k for (k, v) in self.model.__dict__.iteritems() if isinstance(v, db.Property) and getattr(v, 'indexed', None)]
159+
return [k for (k, v) in self.model.__dict__.iteritems()
160+
if isinstance(v, db.Property) and getattr(v, 'indexed', None)]
159161

160162
def init_search(self):
161163
return None
@@ -164,14 +166,14 @@ def is_valid_filter(self):
164166
pass
165167

166168
def scaffold_filters(self):
167-
#TODO: implement
169+
# TODO: implement
168170
pass
169171

170172
def scaffold_form(self):
171173
return wt_db.model_form(self.model())
172174

173175
def get_list(self, page, sort_field, sort_desc, search, filters):
174-
#TODO: implement filters (don't think search can work here)
176+
# TODO: implement filters (don't think search can work here)
175177

176178
q = self.model.all()
177179

@@ -180,7 +182,7 @@ def get_list(self, page, sort_field, sort_desc, search, filters):
180182
sort_field = "-" + sort_field
181183
q.order(sort_field)
182184

183-
results = q.fetch(self.page_size, offset=page*self.page_size)
185+
results = q.fetch(self.page_size, offset=page * self.page_size)
184186
return q.count(), results
185187

186188
def get_one(self, encoded_key):
@@ -194,7 +196,7 @@ def create_model(self, form):
194196
return model
195197
except Exception as ex:
196198
if not self.handle_view_exception(ex):
197-
#flash(gettext('Failed to create record. %(error)s',
199+
# flash(gettext('Failed to create record. %(error)s',
198200
# error=ex), 'error')
199201
logging.exception('Failed to create record.')
200202
return False
@@ -206,23 +208,24 @@ def update_model(self, form, model):
206208
return True
207209
except Exception as ex:
208210
if not self.handle_view_exception(ex):
209-
#flash(gettext('Failed to update record. %(error)s',
211+
# flash(gettext('Failed to update record. %(error)s',
210212
# error=ex), 'error')
211213
logging.exception('Failed to update record.')
212214
return False
213215

214-
def delete_model(self, model):
216+
def delete_model(self, model):
215217
try:
216218
model.delete()
217219
return True
218220
except Exception as ex:
219221
if not self.handle_view_exception(ex):
220-
#flash(gettext('Failed to delete record. %(error)s',
222+
# flash(gettext('Failed to delete record. %(error)s',
221223
# error=ex),
222224
# 'error')
223225
logging.exception('Failed to delete record.')
224226
return False
225227

228+
226229
def ModelView(model):
227230
if issubclass(model, ndb.Model):
228231
return NdbModelView(model)

flask_admin/contrib/fileadmin/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,12 +300,12 @@ def __init__(self, base_url=None, name=None, category=None, endpoint=None,
300300

301301
# Convert allowed_extensions to set for quick validation
302302
if (self.allowed_extensions and
303-
not isinstance(self.allowed_extensions, set)):
303+
not isinstance(self.allowed_extensions, set)):
304304
self.allowed_extensions = set(self.allowed_extensions)
305305

306306
# Convert editable_extensions to set for quick validation
307307
if (self.editable_extensions and
308-
not isinstance(self.editable_extensions, set)):
308+
not isinstance(self.editable_extensions, set)):
309309
self.editable_extensions = set(self.editable_extensions)
310310

311311
super(BaseFileAdmin, self).__init__(name, category, endpoint, url,
@@ -436,7 +436,7 @@ def upload_form(self):
436436
if request.form:
437437
# Workaround for allowing both CSRF token + FileField to be submitted
438438
# https://bitbucket.org/danjac/flask-wtf/issue/12/fieldlist-filefield-does-not-follow
439-
formdata = request.form.copy() # as request.form is immutable
439+
formdata = request.form.copy() # as request.form is immutable
440440
formdata.update(request.files)
441441

442442
# admin=self allows the form to use self.is_file_allowed
@@ -827,7 +827,7 @@ def index_view(self, path=None):
827827
# Sort by type
828828
items.sort(key=itemgetter(2), reverse=True)
829829
# Sort by modified date
830-
items.sort(key=lambda values: (values[0], values[1], values[2], values[3], datetime.fromtimestamp(values[4])), reverse=True)
830+
items.sort(key=lambda x: (x[0], x[1], x[2], x[3], datetime.fromtimestamp(x[4])), reverse=True)
831831
else:
832832
column_index = self.possible_columns.index(sort_column)
833833
items.sort(key=itemgetter(column_index), reverse=sort_desc)

flask_admin/contrib/fileadmin/s3.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ def __init__(self, bucket_name, region, aws_access_key_id,
5555
raise ValueError('Could not import boto. You can install boto by '
5656
'using pip install boto')
5757

58-
connection = s3.connect_to_region(region,
59-
aws_access_key_id=aws_access_key_id,
60-
aws_secret_access_key=
61-
aws_secret_access_key)
58+
connection = s3.connect_to_region(
59+
region,
60+
aws_access_key_id=aws_access_key_id,
61+
aws_secret_access_key=aws_secret_access_key,
62+
)
6263
self.bucket = connection.get_bucket(bucket_name)
6364
self.separator = '/'
6465

flask_admin/contrib/geoa/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# flake8: noqa
12
try:
23
import geoalchemy2
34
import shapely

flask_admin/contrib/geoa/widgets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ def __call__(self, field, **kwargs):
3838
kwargs.setdefault('data-geometry-type', gtype)
3939

4040
# set optional values from constructor
41-
if not "data-width" in kwargs:
41+
if "data-width" not in kwargs:
4242
kwargs["data-width"] = self.width
43-
if not "data-height" in kwargs:
43+
if "data-height" not in kwargs:
4444
kwargs["data-height"] = self.height
4545
if self.center:
4646
kwargs["data-lat"] = lat(self.center)

flask_admin/contrib/mongoengine/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# flake8: noqa
12
try:
23
import flask_mongoengine
34
except ImportError:

flask_admin/contrib/mongoengine/form.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from flask_admin import form
88
from flask_admin.model.form import FieldPlaceholder
99
from flask_admin.model.fields import InlineFieldList, AjaxSelectField, AjaxSelectMultipleField
10-
from flask_admin.model.widgets import InlineFormWidget
1110
from flask_admin._compat import iteritems
1211

1312
from .fields import ModelFormField, MongoFileField, MongoImageField

flask_admin/contrib/mongoengine/subdoc.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ def convert_subdocuments(values):
1818
elif isinstance(p, EmbeddedForm):
1919
result[name] = p
2020
else:
21-
raise ValueError('Invalid subdocument type: expecting dict or instance of flask_admin.contrib.mongoengine.EmbeddedForm, got %s' % type(p))
21+
raise ValueError('Invalid subdocument type: expecting dict or '
22+
'instance of flask_admin.contrib.mongoengine.EmbeddedForm, got %s' % type(p))
2223

2324
return result

flask_admin/contrib/mongoengine/tools.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ def parse_like_term(term):
22
"""
33
Parse search term into (operation, term) tuple. Recognizes operators
44
in the beginning of the search term.
5-
5+
66
* = case insensitive (can precede other operators)
77
^ = starts with
88
= = exact
@@ -24,5 +24,5 @@ def parse_like_term(term):
2424
oper = 'contains'
2525
# add case insensitive flag
2626
if case_insensitive:
27-
oper = 'i'+oper
27+
oper = 'i' + oper
2828
return oper, term

flask_admin/contrib/mongoengine/view.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ def scaffold_list_columns(self):
323323
field_class = type(f)
324324

325325
if (field_class == mongoengine.ListField and
326-
isinstance(f.field, mongoengine.EmbeddedDocumentField)):
326+
isinstance(f.field, mongoengine.EmbeddedDocumentField)):
327327
continue
328328

329329
if field_class == mongoengine.EmbeddedDocumentField:
@@ -626,7 +626,6 @@ def delete_model(self, model):
626626

627627
return True
628628

629-
630629
# FileField access API
631630
@expose('/api/file/')
632631
def api_file_view(self):
@@ -645,9 +644,7 @@ def api_file_view(self):
645644

646645
return Response(data.read(),
647646
content_type=data.content_type,
648-
headers={
649-
'Content-Length': data.length
650-
})
647+
headers={'Content-Length': data.length})
651648

652649
# Default model actions
653650
def is_action_allowed(self, name):

flask_admin/contrib/peewee/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# flake8: noqa
12
try:
23
import peewee
34
import wtfpeewee

flask_admin/contrib/peewee/form.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,22 @@ def __init__(self, form, model, prop, inline_view, **kwargs):
3636
def display_row_controls(self, field):
3737
return field.get_pk() is not None
3838

39-
# *** bryhoyt removed def process() entirely, because I believe it was buggy
40-
# (but worked because another part of the code had a complimentary bug)
41-
# and I'm not sure why it was necessary anyway.
42-
# If we want it back in, we need to fix the following bogus query:
43-
# self.model.select().where(attr == data).execute() # `data` is not an ID, and only happened to be so because we patched it in in .contribute() below
44-
#
45-
# For reference:
46-
# .process() introduced in https://github.com/flask-admin/flask-admin/commit/2845e4b28cb40b25e2bf544b327f6202dc7e5709
47-
# Fixed, brokenly I think, in https://github.com/flask-admin/flask-admin/commit/4383eef3ce7eb01878f086928f8773adb9de79f8#diff-f87e7cd76fb9bc48c8681b24f238fb13R30
39+
""" bryhoyt removed def process() entirely, because I believe it was buggy
40+
(but worked because another part of the code had a complimentary bug)
41+
and I'm not sure why it was necessary anyway.
42+
43+
If we want it back in, we need to fix the following bogus query:
44+
self.model.select().where(attr == data).execute()
45+
46+
`data` is not an ID, and only happened to be so because we patched it
47+
in in .contribute() below
48+
49+
For reference, .process() introduced in:
50+
https://github.com/flask-admin/flask-admin/commit/2845e4b28cb40b25e2bf544b327f6202dc7e5709
51+
52+
Fixed, brokenly I think, in:
53+
https://github.com/flask-admin/flask-admin/commit/4383eef3ce7eb01878f086928f8773adb9de79f8#diff-f87e7cd76fb9bc48c8681b24f238fb13R30
54+
"""
4855

4956
def populate_obj(self, obj, name):
5057
pass
@@ -246,7 +253,6 @@ def contribute(self, converter, model, form_class, inline_model):
246253
allow_pk=True,
247254
converter=converter)
248255

249-
250256
prop_name = reverse_field.related_name
251257

252258
label = self.get_label(info, prop_name)
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
def setup():
22
import warnings
3-
warnings.warn('Flask-Admin peewee integration module was renamed as flask_admin.contrib.peewee, please use it instead.')
3+
warnings.warn('Flask-Admin peewee integration module was renamed as '
4+
'flask_admin.contrib.peewee, please use it instead.')
45

56
from flask_admin._backwards import import_redirect
67
import_redirect(__name__, 'flask_admin.contrib.peewee')
78

9+
810
setup()
911
del setup
1012

11-
from ..peewee.view import ModelView
13+
from ..peewee.view import ModelView # noqa: F401

0 commit comments

Comments
 (0)